关于node后台跨域问题的解决思路及办法

今天给小伙伴们说一下node跨域的问题以及解决办法。首先呢就是大家需要了解一下同源策略以及什么是跨域,咋样才称之为跨域,关于这些概念性的东西我就不在赘述,不知道的小伙伴可以下去自己去问度娘或者做功课。
首先介绍一下我这边用的是node +koa框架开发的这样一个技术,在解决跨域的问题上面,网上有很多中间件,但是说实话,坑有点多,吐槽一下个别技术博客的博主,有些东西自己都不知道可不可以用就直接拿上来就给别人看,确实别人看了就入坑了,再次就是希望质量提高一点,话不多说,上干货。

首先我把我踩坑的经验聊一下,首先用的是那个cors这个中间件,然后就是三部曲嘛。下载,引入,然后app.use 用就可以了,但是这个会报一个错就是飞行响应头被拦截,包含include的时候,请求标题字段在飞行前响应中不允许Access-Control-Allow-Headers进行授权,并且由withcredentials这个属性控制,大概就是这个意思,这个时候我以为是跨域哪儿没设置对,然后就是在接口返回的时候设置请求头,然后发现就是这个问题还是不行,我就怀疑是中间件的问题,然后就是换了个@koa/cors这个中间件,然而以为可以解决,然而和那个是一样的,这儿说一个小问题,小白可能会犯就是改完node代码之后需要重新npm start 一下才行,还是和那个报一样的错,然后就找了一个koa2-cors,实现了。
首先npm i koa2-cors --save -dev下载,然后在app.js 里面引入,如下图
在这里插入图片描述
在引入的时候注意顺序问题。
在这里插入图片描述
然后就是app.use 直接使用,在使用当中注意的问题如下。
在这里插入图片描述
需要注意的是在origin这个里面就是设置响应头的时候不能是*,会报错,这个需要配合那个withcredentials属性来使用的,所以我改成了直接本地测试的域名,这块就是需要注意一下,完了线上环境改成线上环境就可以了,然后请求的时候就可以了。

再次需要注意的时候就是可能你用的框架和你的中间件有关系的,可能有些不兼容,这个问题还是引起大家的关注,希望有问题随时交流,来自一个很菜的前端小菜鸡。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值