V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
happyCodings
V2EX  ›  前端开发

原生 node 跨域问题

  •  
  •   happyCodings · 2022-03-01 08:46:08 +08:00 via iPhone · 1474 次点击
    这是一个创建于 1001 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    6 条回复    2022-03-01 10:11:08 +08:00
    guoke360
        1
    guoke360  
       2022-03-01 09:03:32 +08:00
    vue 前端的话直接走代理就行了,跨域指的是浏览器内你访问的后台域名和正在使用的域名不一样就会报错
    liyang5945
        2
    liyang5945  
       2022-03-01 09:12:39 +08:00   ❤️ 1
    跨域请求带 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
        3
    happyCodings  
    OP
       2022-03-01 10:06:35 +08:00 via iPhone
    @liyang5945 大佬 options 设置返回 204 可以了 但是正常的请求还是不可以 哭晕
    liyang5945
        4
    liyang5945  
       2022-03-01 10:08:30 +08:00
    @happyCodings #3 贴个报错信息
    happyCodings
        5
    happyCodings  
    OP
       2022-03-01 10:10:37 +08:00 via iPhone
    @liyang5945 而且我用的是原声没有用 express 没有 writehead 方法 通过 statusCode 来实现 204 不生效
    happyCodings
        6
    happyCodings  
    OP
       2022-03-01 10:11:08 +08:00 via iPhone
    @liyang5945 加个微信可以么 公司电脑没有办法上飞机 15694302859
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3921 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:11 · PVG 13:11 · LAX 21:11 · JFK 00:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.