Vue3配置代理解决跨域请求及携带Cookie问题

在前后端开发的过程中,经常涉及跨域请求的问题。

  1. 跨域请求。
  2. axios发送请求时携带cookie,用于后端用户认证。
问题1解决:

给vue3配置代理服务器,后台无需进行跨域请求配置。在 vue.config.js 配置文件中进行配置。添加一下代码

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  
  // 添加代码 beg
  devServer:{
    port:"3333", // 配置本地vue服务的端口号
    // 配置代理
    proxy:{ 
      '/note':{
        target:'http://192.168.9.60:5555/note',
        changeOrigin:true, // 是否允许跨域请求
        pathRewrite:{
          // 配置路径重写。说明:用 /note 代替【target地址】 http://192.168.9.60:5555/note 。
          // 例如:axios请求的时候URL地址: /note/login 就是 http://192.168.9.60:5555/note/login
          '^/note': '' 
        }
      }
    }
  }
  // 添加代码 end
  
})

问题2解决:

配置axios发送请求的时候带上cookie。配置之后接收的cookie会自动保存好,发送的时候会自动携带。

import axios from 'axios'
axios.defaults.withCredentials = true;

注意:要解决问题1之后,再解决问题2,否则就会出现跨域请求的问题。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue配置跨域可以通过修改配置文件或者使用插件来实现。下面分别介绍两种方法: 1. 修改配置文件 在Vue的config文件夹下的index.js中,可以找到如下代码: ```javascript module.exports = { dev: { // ... }, // ... } ``` 在其中添加如下代码: ```javascript module.exports = { dev: { // ... proxyTable: { '/api': { target: 'http://localhost:3000', // 接口的域名 changeOrigin: true, // 如果接口跨域,需要进行这个参数配置 pathRewrite: { '^/api': '' // 将/api替换为'' } } } }, // ... } ``` 其中,proxyTable表示代理表;/api表示需要代理的接口路径;target表示接口的域名;changeOrigin表示是否跨域;pathRewrite表示路径重写。 然后在发送请求时,将接口路径改为/api/即可。 例如: ```javascript this.$http.get('/api/userinfo').then((response) => { console.log(response.data) }) ``` 2. 使用插件 可以使用axios或者vue-resource等插件来发送跨域请求。以axios为例,可以在main.js中添加如下代码: ```javascript import axios from 'axios' Vue.prototype.$http = axios.create({ baseURL: 'http://localhost:3000', // 接口的域名 timeout: 5000, // 请求超时时间 withCredentials: true, // 允许携带cookie crossDomain: true // 允许跨域 }) ``` 然后在组件中使用: ```javascript this.$http.get('/userinfo').then((response) => { console.log(response.data) }) ``` 其中,baseURL表示接口的域名;timeout表示请求超时时间;withCredentials和crossDomain表示允许携带cookie和允许跨域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值