问题
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
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)})
This prints out something like this:
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
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?
I either expected it to return JSON data or fail.
Also, where would the JSON response data be in the res
?
回答1:
This is normal behavior. fetch()
returns a stream object and not just the body.
Use res.json()
to extract the JSON content.
For non JSON responses, use res.text()
来源:https://stackoverflow.com/questions/55460648/getting-fetch-response-data