在用 fetch API 实现跨域请求时,遇到这个问题,跨域请求是成功的,但是返回的 response 中 body 为 null 。
如果是同一个域名就没有问题,如下图
也能读取请求的 json 文件内容,
但,如果是跨域请求的话就会变成这样子:返回的 response 中 body 为 null
并且完全读取不了 json 文件
好像这位仁兄也遇到这种问题,不过还没有解决,不知道大家有没有同样经历?
其实跨域请求可以请求到json文件,但是为什么response 中 body 为 null?
终于解决问题了:主要原因是我的服务器没有开启支持跨域访问,如下图所以:(当服务器开启了支持跨域访问就可以了)
但关于Fetch API的 no-cors
和 cors
还是有点疑惑。
在 [翻译] 这个API很“迷人”——(新的Fetch API))中提到:
这里说 no-cors
是默认的?
并且里面说 no-cors
js不能访问Response中的任意属性,这难道是造成下图的原因吗?
1
xxxyyy 2016-07-22 11:34:38 +08:00 via Android
你的 mode 都设成 no-cors ,还怎么跨呀!
如果你对 fetch API 不熟,建议你看下 MDN 里的文档: https://developer.mozilla.org/en-US/docs/Web/API/GlobalFetch/fetch |
3
NicholasNC OP |
4
pole1419 2016-09-11 14:54:07 +08:00
我也遇到这个情况,问题是要请求资源是第三方公开的 API ,自己没权限去设置人家的服务器允许跨域。。。
|