【发布时间】:2016-11-12 19:09:01
【问题描述】:
我正在尝试使用 fetch 函数在客户端 Javascript 代码中从服务器检索数据。我在 Chrome 中使用名为 whatwg-fetch 的 polyfill 版本的 fetch(内部支持 fetch)。
这是我调用函数的方式:
//Called in a page loaded as http://localhost:3236/
fetch("http://localhost:8080/list", {
mode: 'no-cors',
credentials: "include",
})
.then(function(response) {
return response.json();
});
如您所见,我的应用程序服务器与资源服务器不同,因此我必须为 CORS 设置选项。问题是response 没有内容:
{
body: null,
bodyUsed: false,
headers: Headers,
ok: false,
status: 0,
statusText: "",
type: "opaque",
url: "",
}
当我转到网络面板并找到发送的请求时,似乎一切正常,状态为 200 和请求的数据。
我怎样才能找到问题所在?
【问题讨论】:
-
请注意,如果预期结果是例如
application/json,Chrome 可以显示空白响应数据,但无论出于何种原因(即格式无效)都无法解析 HTTP 响应正文。在这种情况下,我通常会打开 Fiddler 并检查原始响应。 -
Chrome 的原始响应面板不算数吗?我可以在那里看到我想要的回应。只是在JS里收不到!
标签: javascript cors cross-domain fetch-api