老师请问一个node cors跨域的问题

老师请问一个node cors跨域的问题

我在用宝塔面板部署这个node后端接口的时候跨域了,但是我用cors 设置了允许跨域的端口,现在前端是能正常访问接口,但是不知道怎么的cookie传递有问题,不知道是什么原因引起的,这个该怎么解决呀?

https://img1.sycdn.imooc.com//climg/616e6f7709e034a410000381.jpg

这是接口请求回来时候出现的问题,说是要设置什么东西,但是这个要怎么操作呀?

https://img1.sycdn.imooc.com//climg/616e702709f8bfec10000815.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕然然 2021-10-19 16:55:02

同学你好,这是由于从Chrome 51开始,谷歌浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪(主要用来限制第三方 Cookie,从而减少安全风险)

该设置之前默认是关闭的(即默认值为None),但在Chrome 80之后,将 Lax 作为了默认值,以便对某些类型的跨站请求伪造(CSRF)攻击具有相当强的防御能力。

解决方案:建议在chrome://flags/里设置禁用SameSite,然后重启浏览器试试

https://img1.sycdn.imooc.com//climg/616e87af090a43fb10000601.jpg

祝学习愉快!

  • 提问者 帅得无心敲代码 #1
    如果说我设置了关闭,正常了,但是我上线调试好以后,别人访问会不会也会出现这样的问题,感觉这样好烦
    2021-10-19 17:23:12
  • 同学你好,SameSite的存在是为了限制第三方 Cookie(比如常见的广告网络商),防止CSRF 攻击和追踪用户行为,上面的解决方案是为了解决本地调试的问题。而不是为了禁用SameSite。

    目前可能是由于同学使用了宝塔面板导致的,建议同学可以将前后端项目一起放到同一域名下,避免出现跨域的场景,应该就不会出现这个问题了。

    祝学习愉快!

    2021-10-19 17:57:19
  • 提问者 帅得无心敲代码 #3
    老师。我现在是买了一个域名showpage.top,然后demo.showpage.top这个域名是前端的vue项目在使用就是那个京东商城,也能正常访问。后端node接口项目我就用的是服务器的公网ip,这不算是一个域名下吗?如果不是的话,那我是不是需要解析两个域名出来,比如一个www.showpage.top,一个demo.showpage.top,用这两个域名部署的话,是不是就是在一个域名下呀?然后就不存在跨域了?老师麻烦您了。
    2021-10-19 19:17:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师