我正在尝试使用fetch
函数在客户端Javascript代码中从服务器检索数据。我在Chrome中使用了名为whatwg-fetch
的polyfill版本的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且请求的数据一切正常。
如何找到问题所在?
答案 0 :(得分:5)
线索在opaque
键中。请求成功,但Chrome的CORS限制阻止您使用返回的数据。 no-cors
选项是可疑的;如果您的服务器已正确配置为跨源请求,则不需要它。
N.B。如果您已正确配置所有内容但在本地测试客户端时遇到错误,则使用--disable-web-security
标记启动Chrome可能就足够了。