CORS-服务器端cookie没有保存在chrome浏览器上
CORS - Server side cookie is not getting saved on chrome browser
有一个节点服务器,在接受用户的正确凭据后,passport-js会在请求头中以设置cookie的名称创建并发送会话cookie。
但是,当我从chrome浏览器执行ajax请求时,它不会在客户端添加cookie。因此,当客户端生成新请求时,服务器不会对其进行身份验证并抛出401。
我很困惑是浏览器问题还是AJAX请求中缺少了什么
请帮忙。
如果使用"fetch",则需要添加一个密钥
{
headers: req.headers,
credentials: 'include'
}
感谢您的回答。我正在尝试withCredentials
的东西,但会话cookie没有在我的本地设置。
我弄清楚的原因是允许的起源。我需要在后端设置允许的原点。
如果使用凭据属性传递XHR by,则它是一个安全请求。因此,客户端浏览器只有在允许的来源与请求来源匹配时才保存cookie。
因此,简单的解决方案是将主机更改为与允许的来源相匹配的主机。
在节点端,我需要执行origin: 'domain.com'
在前端,我需要将我的服务器(localhost)设置为指向test.domain.com.和bingo。成功了。!
我在Chrome中使用Angular 4时遇到了这个问题(IE正在工作)。
从本地主机:4200上的客户端到本地主机:24336上的WebApi的请求。具有所有CORS设置,"访问控制允许凭据"value="true"访问控制许可来源"value="http://localhost:4200"等,并在每个请求中传递{withCredentials:true},例如http.post(url,{},{withCredentials:ttrue})。
对我来说,修复方法是按照以下步骤将默认的RequestOptions设置为{withCredentials:true}https://angular.io/api/http/BaseRequestOptions并将以下内容添加到提供程序中:在app.module.ts 中
,{provide: RequestOptions, useClass: MyOptions}
如果使用XHR请求,则需要将withCredentials
设置为true。如果没有,它应该可以解决问题。请提供代码
- CORS-服务器端cookie没有保存在chrome浏览器上
- 检查是否存在使用chrome扩展的javascript库
- 使用正则表达式删除标记时,Firefox和Chrome之间存在不一致
- 谷歌Chrome元素仍然存在:即使从光标移开,也要悬停
- chrome.tabs.onUpdated返回了一个没有'不存在
- Chrome扩展api;t检查cookie是否存在
- 在Chrome上获取z索引值时存在差异
- chrome.tabs.sendRequest:“端口错误:无法建立连接.接收端不存在
- Chrome 标签页的永久唯一 ID,在浏览器会话之间持续存在
- Chrome 扩展程序 - GCM 通知会引发错误,但信息已存在
- 文件输入 :Chrome 在提交表单之前不会检查文件是否仍然存在
- 如何在 chrome 中加载本地主机域中不存在的 JavaScript
- 检查 Cookie 是否存在 - Chrome 扩展程序
- 在不使用数据库的情况下将突出显示的文本保存在 Chrome 扩展程序中
- Chrome 的开发工具或 Firebug 中是否存在“设置下一个语句”功能?
- 保存在Chrome录制的WAV文件到服务器
- 使用image.complete来查找图像是否缓存在chrome上
- chrome扩展中不存在chrome.runtime. onconnect
- ngCookies保存在chrome中,但没有保存在android中
- 强制缓存控制:无缓存在Chrome浏览器通过XMLHttpRequest在F5重新加载