即使请求成功,fetch的响应也是空的

Meh*_*ran 5 javascript cross-domain cors fetch-api

我正在尝试使用fetch函数从客户端Javascript代码中的服务器检索数据.我正在使用whatwg-fetchChrome中命名的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();
    });
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我的应用程序服务器与我的资源服务器不同,因此我必须为CORS设置选项.问题是response没有内容:

{
    body: null,
    bodyUsed: false,
    headers: Headers,
    ok: false,
    status: 0,
    statusText: "",
    type: "opaque",
    url: "",
}
Run Code Online (Sandbox Code Playgroud)

在我转向网络面板并找到发送的请求的情况下,看起来状态为200并且所请求的数据一切正常.

我怎样才能找到问题所在?

lin*_*ina 5

opaque关键是线索.请求成功,但Chrome的CORS限制阻止您使用返回的数据.该no-cors选项是可疑的; 如果您的服务器已正确配置为跨源请求,则不应该这样做.

注意如果您已正确配置所有内容但在本地测试客户端时遇到错误,则启动带有该--disable-web-security标志的Chrome可能就足够了.