CORS获取不同的端口

时间:2017-07-21 15:17:35

标签: javascript cookies cors fetch

我需要发送获取请求(使用java脚本),当我从localhost发送它时:8080很好,但是当我将localhost更改为其他时 - 有303响应或没有响应一点都不。

当我从8080发送cookie时,它还包括cookie,而不是从其他主机发送。

哪里可能有问题?我完全迷失了。

1 个答案:

答案 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'})