原生 node 跨域问题

2022-03-01 08:46:08 +08:00
 happyCodings

大佬们 原生的 node.js 配置跨域除了了几个常用的有什么需要注意的么 配置完 postman 跑没问题 请求头里请求头里也没问题 但是我用 vuecli 搭建的页面搭建的页面就报跨域 大佬们能帮忙出出招么

1287 次点击
所在节点    前端开发
6 条回复
guoke360
2022-03-01 09:03:32 +08:00
vue 前端的话直接走代理就行了,跨域指的是浏览器内你访问的后台域名和正在使用的域名不一样就会报错
liyang5945
2022-03-01 09:12:39 +08:00
跨域请求带 cookie 的话,Access-Control-Allow-Origin ,这个字段不能是*,必须是具体的,例:localhost:8080 。

Access-Control-Allow-Credentials 这个字段要为 true ,还有 options 请求要返回 204 ,浏览器现在不显示这个请求了,前段时间也碰到跨域的坑,就是 options 的问题,抓包才找到问题来源。 顺便附上 nodejs 代码:
res.header("Access-Control-Allow-Origin", req.headers.origin);
res.header("Access-Control-Allow-Credentials", 'true');
res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
if(req.method=='OPTIONS'){
res.writeHead(204)
}
happyCodings
2022-03-01 10:06:35 +08:00
@liyang5945 大佬 options 设置返回 204 可以了 但是正常的请求还是不可以 哭晕
liyang5945
2022-03-01 10:08:30 +08:00
@happyCodings #3 贴个报错信息
happyCodings
2022-03-01 10:10:37 +08:00
@liyang5945 而且我用的是原声没有用 express 没有 writehead 方法 通过 statusCode 来实现 204 不生效
happyCodings
2022-03-01 10:11:08 +08:00
@liyang5945 加个微信可以么 公司电脑没有办法上飞机 15694302859

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/837049

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX