nodejs+express解决跨域问题,发现网上的大部分都是误导人,花了不少时间,终于弄懂了,
我在vue+nodejs+express+mongodb的项目里面,发现本地用vue代理正常调用远程的nodejs api接口,但是放在云服务器上之后,就出现了跨域问题,因为vue代理在线上已经无效了。
在nodejs的express里的app.js添加全局路由,即可解决vue线上项目的跨域问题,如下:
res.header("Access-Control-Allow-Origin", " * ");,这个就会报以下的错误:
res.header("Access-Control-Allow-Credentials", "true");,如果没有这段代码,解决跨域就无效,一定要加上,注意true是字符串:
res.header("Access-Control-Allow-Headers", "Content-Type,username");,这是req.headers的字段,比如username,一定要用,逗号隔开,若没有加上前端传过来的headers里的username会报以下错误: