我需要发送获取请求(使用java脚本),当我从localhost发送它时:8080很好,但是当我将localhost更改为其他时 - 有303响应或没有响应一点都不。
当我从8080发送cookie时,它还包括cookie,而不是从其他主机发送。
哪里可能有问题?我完全迷失了。
答案 0 :(得分:2)
MDN got quite good doc on CORS and fetch。因此,当您使用cors标志调用fetch到其他原点时:
fetch(url, {method: 'GET', mode: 'cors'})
如果网址来自不同的网站,则网站提取将首先发出带标题的OPTION请求:
Origin: http://foo.example
Access-Control-Request-Method: GET
服务器必须确认发送响应的此类请求允许来源:
Access-Control-Allow-Origin: http://foo.example
Access-Control-Allow-Methods: GET
很可能服务器端没有启用CORS,可以通过浏览器控制台网络请求轻松检查。检查OPTIONS是否已由服务器端发送和回复,以及您的站点是否存在于Access-Control-Allow-Origin:
标题中。[/ p>
请注意,如果您的服务器需要授权,则应使用{credentials: 'include'}
调用fetch:
fetch(url, {method: 'GET', mode: 'cors', credentials: 'include'})