vue3和nodejs全栈开发遇到的cors跨域问题

在实际开发中,因前后端分离经常会遇到跨域的问题,跨域的原因简单说就是彼此的IP和端口有不同,导致无法访问,是浏览器的安全策略,比如封装成electron应用的话就不会有这个问题。

以下是我目前遇到的一些跨域报错和如何解决的情况。记录一下怕以后不好找。

解决方式一.后端配置cors

这个还是比较方便的,对于自己开发的项目,后端稍微配置下就可以解决问题了。

1.npm i cors//安装依赖

2.配置


const express = require('express')
const cors=require('cors')

const app = express()

二.前端代理

于文件vite.config.js配置

比如要访问别的IP的端口接口,会在访问到/apikoudai的时候自动替换为target。

使用代理的时候访问的接口地址显示会是你的服务器IP,

export default defineConfig({
  server: {
    proxy: {
      '/student_admins': {
        target: 'http://localhost:3001',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/student_admins/, '')
      },
      '/apikoudai': {
        target: 'http://111.111.111.111:888',
        changeOrigin: true,
        rewrite: (path) => path.replace('/apikoudai', '')
      }
    }
  }

axios封装模块

需要改变baseurl

const koudaihttp = axios.create({
  baseURL: '/apikoudai',
  // baseURL: '111.111.111.111:888',
  timeout: 5000000
})

服务器配置

我用的是nginx,listen和servername根据你的网站实际设定

后边重定向配置是按照上边的例子来的,可以根据此修改。

    server {
        listen       我的端口;
        server_name  www.我的网站.com;
        location /apikoudai/ {
        proxy_pass http://111.111.111.111:888/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

这些都是我在这些日子中学习遇到的情况和对应的解决方案,对于nainx的配置修改和一些底层原理说的也没别人好,有不懂的原理可以搜下别人的资料,有更好的方法欢迎大家分享~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值