【发布时间】:2022-03-16 22:21:07
【问题描述】:
我正在使用 chrome devTools 来镜像 webRequest。查看网络请求,响应中有一些我想要访问的 JSON 数据
右键 --> 复制为 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 代码响应。这正常吗?
我要么期望它返回 JSON 数据,要么失败。
另外,res 中的 JSON 响应数据在哪里?
【问题讨论】:
-
fetch返回一个解析为请求的 Promise。在请求上调用.json(),它将返回一个解析为对象的 Promise。 -
扩展 @zero298 提到的内容:
.then(response => response.json()) .then(data => console.log(JSON.stringify(data)))是两个承诺的样子。
标签: javascript fetch-api