vue中使用axios,给node后端发送请求,怎么解决跨域的问题

新手上路,请多包涵

image.png
报了这个错误怎么解决,在百度找了半天都没有找到解决的办法### 问题描述

阅读 5.4k
8 个回答

cors 可以解决、很方便

var express = require('express')

var cors = require('cors')

// 新建app
var app = express()

// cors 解决请求跨域
app.use(cors())

var port = process.env.PORT || 3000

var server = app.listen(port, function () {

console.log(`node start: http://localhost:${port}`)

})

允许跨域得后端设置。

若使用了 webpack,直接配置proxy即可。
若没有,需要后端处理

node后端配置一下CROS或者前端webpack的proxy代理

前端设置 webpack 里的 proxy 即可,无需后端配置,例子:

devServer: {
    proxy: {
      '/api': {
        // 注意带上端口号
        target: 'http://192.168.10.73:9091',
        ws: true,
        changeOrigin: true,
        secure: false,
        pathRewrite: {
          '/api': ''
        }
      }
    }
  }

首先你确认下是在开发还是项目发布.
开发中在webpack中配置下就行.
如果是要发布,那么应该是后端去设置下比较科学

因为你这是 Node 的本地服务器,所以属于开发环境,最简单的方式就是通过代理方式,基本能满足你的需求。
其次,你可以在 Node 服务器中配置 CORS 设置允许跨域的源、方法等等,类似于 1 楼使用的 cors 模块。
但是需要注意一点, cors 模块默认的 origin (源)是通配符 *, 可能会跟你的 cookie 之类的令牌冲突,所以建议使用 cors 模块的时候也要手动配置,当然如果你没有这方面需求,也可以不手动设置。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题