在用 fetch API 实现跨域请求时,遇到这个问题,跨域请求是成功的,但是返回的 response 中 body 为 null ,response.ok==false,
在chrome浏览器可以看到,返回的数据已经有了,
我使用是fetch获取百度音乐API的,我写的代码如下:
var url="http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.search.catalogSug&query=张碧晨"
fetch(url, {
method: 'GET',
mode: 'no-cors',
cache: 'default'
}).then((res)=> res.json()).then((resData) => {
console.log(resData);
})
这样打印出来的,显示有错误,不知道是什么问题?
no-cors
的请求回来的结果opaque response
,是一种不透明 的响应结果,意味着你不能通过response
获取。应该采用cors
跨域请求模式,可以正常拿到请求结果,但是这种模式涉及到CORS,需要服务端支持Access-Control-Allow-Origin
响应头。具体可参考MDN