happyCodings

原生 node 跨域问题

  •  
  •   happyCodings · Mar 1, 2022 via iPhone · 2294 views
    This topic created in 1553 days ago, the information mentioned may be changed or developed.

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

    6 replies    2022-03-01 10:11:08 +08:00
    guoke360
        1
    guoke360  
       Mar 1, 2022
    vue 前端的话直接走代理就行了,跨域指的是浏览器内你访问的后台域名和正在使用的域名不一样就会报错
    liyang5945
        2
    liyang5945  
       Mar 1, 2022   ❤️ 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
       Mar 1, 2022 via iPhone
    @liyang5945 大佬 options 设置返回 204 可以了 但是正常的请求还是不可以 哭晕
    liyang5945
        4
    liyang5945  
       Mar 1, 2022
    @happyCodings #3 贴个报错信息
    happyCodings
        5
    happyCodings  
    OP
       Mar 1, 2022 via iPhone
    @liyang5945 而且我用的是原声没有用 express 没有 writehead 方法 通过 statusCode 来实现 204 不生效
    happyCodings
        6
    happyCodings  
    OP
       Mar 1, 2022 via iPhone
    @liyang5945 加个微信可以么 公司电脑没有办法上飞机 15694302859
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5958 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:55 · PVG 09:55 · LAX 18:55 · JFK 21:55
    ♥ Do have faith in what you're doing.