获取 Fetch 响应数据
我正在使用 chrome devTools 来镜像 webRequest.查看网络请求,响应中有一些我想要访问的 JSON 数据
I'm using the chrome devTools to mirror a webRequest. Looking at the network request, there is some JSON data in the response that I want to get access to
右键 --> 复制为 fetch -->
Right click --> Copy as fetch -->
fetch(
"https://www.url.com/service.svc?action=FindConversation&ID=-40&AC=1",
{
"credentials":"include",
"headers":{
"accept":"*/*",
"accept-language":"en-US,en;q=0.9",
"action":"FindConversation",
"content-type":"application/json; charset=UTF-8",
"actionid":"-40",
"unique_identifier":"062lCufCY0i5mI9NMTRUsF87XDq9ttYIonzZQjBcCOPvzoIJFOTSI6ZVNK9lMwy_iPFY2tuZzPY."
"x-requested-with":"XMLHttpRequest"
},
"referrer":"https://ballard.amazon.com/OWA/",
"referrerPolicy":"no-referrer-when-downgrade",
"body":"contains some body data I want to manipulate",
"method":"POST",
"mode":"cors"
}
).then(res => {console.log(res)})
这会打印出如下内容:
Response {type: "basic", url: "https://url/service.svc?action=FindConversation&ID=-40&AC=1", redirected: false, status: 200, ok: true, …}
body: ReadableStream
locked: false
__proto__: ReadableStream
bodyUsed: false
headers: Headers {}
ok: true
redirected: false
status: 200
statusText: "OK"
type: "basic"
url: "https://url/OWA/service.svc?action=FindConversation&ID=-40&AC=1"
__proto__: Response
当我检查我刚刚发出的网络请求时,它似乎没有返回任何 JSON 数据,而是以 200
代码响应.这正常吗?
When I inspect the network request I just made, it looks like it isn't returning any JSON data, but responds with a 200
code. Is that normal?
我要么期望它返回 JSON 数据,要么失败.
I either expected it to return JSON data or fail.
另外,JSON 响应数据在 res
中的什么位置?
Also, where would the JSON response data be in the res
?
推荐答案
这是正常现象.fetch()
返回一个 stream 对象,而不仅仅是正文.
This is normal behavior. fetch()
returns a stream object and not just the body.
使用 res.json()
提取 JSON 内容.对于非 JSON 响应,请使用 res.text()
Use res.json()
to extract the JSON content.
For non JSON responses, use res.text()
相关文章