欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vue反向代理(解决跨域)

程序员文章站 2022-03-11 23:23:38
1,vue中有提供反向代理的接口,就是config/index.js中的proxyTable,我的脚手架版本是2.9.6,proxyTable配置初始为空,如下图。2,将proxyTable配置如下:proxyTable: { '/api': { //需要代理的接口 target:'http://39.97.33.178', //目标服务器 changeOrigin: true,       //是否跨域...

1,vue中有提供反向代理的接口,就是config/index.js中的proxyTable,我的脚手架版本是2.9.6,proxyTable配置初始为空,如下图。
vue反向代理(解决跨域)
2,将proxyTable配置如下:

proxyTable: {
     '/api': {                       //需要代理的接口
       target:'http://39.97.33.178', //目标服务器
       changeOrigin: true,       //是否跨域
       pathRewrite: {
         '^/api': '/api'             //重定向
       }
     }
   },

例如:我需要访问的接口是:http://39.97.33.178/api/cityList,第一行 ‘/api‘ 是一个标识,告诉它只代理接口里面有/api这个字段的接口,我的目标服务器就是http://39.97.33.178,即target定义的,pathRewrite重定向 ‘^/api’: ‘/api’ 就是在代理是时候使用/api 代理 http://39.97.33.178/api,使用的时候就可以直接这样使用:

this.$axios.get('/api/cityList').then((res)=>{
    console.log(res)
})

重定向也可以为空 ‘^/api’: ’ ',使用的时候就需要多加一层:

this.$axios.get('/api/api/cityList').then((res)=>{
    console.log(res)
})

第一个/api 相当于 路径代理到 http://39.97.33.178 ,第二个/api/cityList才是接口里面的路径

注意:坑点
上传文件的接口配置了反向代理可能也会出错:
1.错误码400可能传参错误
2.跨域可能没有设置请求头,请求头代码如下

axios.post(url, params, {
          headers: {
            'Content-Type': 'multipart/form-data',
          }
        })
        .then(res => {
          console.log(res)
        })
        .catch(err => {
          console.log(err)
        })
	let formData = new FormData();
   formData.append("uploadFile", data[0].file); //接口需要传的参数
   formData.append("compreFormat", "png"); //接口需要传的参数
   UploadFile(formData).then(res => {
     console.log(res); //城市列表
 	});

本文地址:https://blog.csdn.net/weixin_44903107/article/details/107420863

相关标签: javascript