1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 关于node后台跨域问题的解决思路及办法

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

时间:2024-04-08 12:33:14

相关推荐

关于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属性来使用的,所以我改成了直接本地测试的域名,这块就是需要注意一下,完了线上环境改成线上环境就可以了,然后请求的时候就可以了。

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。