如何跨源共享Cookie?更具体地说,如何将Set-Cookie
标头与标头结合使用Access-Control-Allow-Origin
?
这是我的情况的解释:
我正在尝试为localhost:4000
在托管的Web应用程序中运行的API设置Cookie localhost:3000
。
看来我在浏览器中收到了正确的响应头,但是不幸的是它们没有作用。这些是响应头:
HTTP / 1.1 200 OK Access-Control-Allow-Origin:http:// localhost:3000 有所不同:来源,接受编码 Set-Cookie:token = 0d522ba17e130d6d19eb9c25b7ac58387b798639f81ffe75bd449afbc3cc715d6b038e426adeac3316f0511dc7fae3f7; 最大年龄= 86400; 域=本地主机:4000; 路径= /; Expires = Tue,19 Sep 2017 21:11:36 GMT; HttpOnly 内容类型:application / json; 字符集= utf-8 内容长度:180 ETag:W /“ b4-VNrmF4xNeHGeLrGehNZTQNwAaUQ” 日期:2017年9月18日星期一21:11:36 GMT 连接:保持活动状态
此外,Response Cookies
当我使用Chrome开发人员工具的“网络”标签检查流量时,可以在下面看到Cookie 。但是,我看不到“应用程序”标签中的设置了Cookie Storage/Cookies
。我没有看到任何CORS错误,因此我想我还缺少其他东西。
有什么建议?
更新一:
我在React-Redux应用程序中使用请求模块/signin
向服务器上的端点发出请求。对于服务器,我使用express。
快递服务器:
res.cookie('token','xxx-xxx-xxx',{maxAge:86400000,httpOnly:true,domain:'localhost:3000'})
在浏览器中的请求:
request.post({uri:'/ signin',json:{userName:'userOne',password:'123456'}},(err,response,body)=> { //做事 })
更新二:
现在,我正在疯狂地设置请求和响应头,以确保它们同时存在于请求和响应中。以下是屏幕截图。注意头Access-Control-Allow-Credentials
,Access-Control-Allow-Headers
,Access-Control-Allow-Methods
和Access-Control-Allow-Origin
。看一下我在Axios的github上发现的问题,我的印象是现在已经设置了所有必需的标头。然而,仍然没有运气...