相关疑难解决方法(0)

CORS Cookie 未在跨域上设置,使用 fetch,设置凭据:'include' 和 origins 已设置

我正在使用 fetch 向后端发出请求。当我使用不同的域时,cookie 未设置。当我使用相同的域时设置了 cookie。

为什么没有设置?

我修改了我的 /etc/hosts 文件以使用假名来测试使用相同和不同的域,并确保它们也没有被浏览器列入黑名单

如果我local-test-frontend.com同时用于浏览器和服务器域,它可以工作,但如果我将后端 url 更改为local-test-backend.com它会失败。

*请注意,我测试的前端网址是 * http://local-test-frontend.com:3000/login

Javascript

    fetch('http://local-test-backend.com/login',  {
        mode: 'cors',
        method: 'POST',
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
        },
        body: JSON.stringify(loginRequest),
        credentials: 'include'
    }).then(// Other code here.....
Run Code Online (Sandbox Code Playgroud)

服务器响应头

Access-Control-Allow-Credentials    
true
Access-Control-Allow-Origin 
http://local-test-frontend.com:3000
Content-Length  
103
Content-Type    
application/json
Date    
Wed, 10 Jul 2019 07:23:49 GMT
Server  
Werkzeug/0.15.1 Python/3.7.3
Set-Cookie  
MY_TOKEN=a7b8ad50f19…end.com; Path=/; SameSite=Lax
Run Code Online (Sandbox Code Playgroud)

javascript cross-domain fetch cors flask

1
推荐指数
2
解决办法
3091
查看次数

标签 统计

cors ×1

cross-domain ×1

fetch ×1

flask ×1

javascript ×1