axios跨域问题

Posted carriezhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了axios跨域问题相关的知识,希望对你有一定的参考价值。

项目开发过程中遇到了使用axios请求后台接口跨域的问题,网上搜了几种方案都没有解决,最后通过配代理的方式解决了,代码如下:

报错:

技术图片

(因为项目打包后,使用时需要多次修改接口ip,所以我把ip单独定义到了一个文件中)

  1、定义ip接口,在/static/下新建文件夹js,新建文件config.js,即:/static/js/config.js,(static文件夹下的文件打包后是原样输出的)

// config.js
// 这段代码是我从网上找到的,其中我用到的字段只有baseURL,其它字段大家任意,有需要的话就定义

window.g = {
    baseURL: ‘http://192.168.7.111:8091‘,    // 配置服务器地址
    mqtt_ip: "39.106.58.252",
    mqtt_port: "61623",
    mqt_user: "bin",
    mqtt_password: "123456"
}

  2、定义config.json,同样是在static文件夹下定义,即:/static/js/config.json,(只要是static文件夹下就行,不一定非要在js下)

{
    "baseURL": "http://192.168.7.111:8091"
}

  

注:定义这个文件的原因是,我们要做跨域请求代理,需要修改/config/index.js,修改方式如下:

// 在index.js中引入config.json
const configJSON = require(‘../static/js/config.json‘);
const baseURL = configJSON.baseURL;

// 在index.js下找到proxyTable:{},在这进行编辑

proxyTable: {
  ‘/api‘: {
        target: baseURL,
        changeOrigin: true,
        pathRewrite: {
            ‘^/api‘ : ‘‘
        } 
    }  
}

  3、axios请求

enableDisableEvent(data) {
    let postData = {
        id: data.id,
        sourceStatic: data.sourceState
    }

    axios.post(‘/api/web/modules/controller/source/dorp/source‘, {
        params: {
            ...postData,
        }
    })
    .then(res => {
        console.log(res)
    })    
    .catch(err => {
        console.log(err)
    })
}

  注:其中的/api是不能省略的

参考网址:

  https://www.cnblogs.com/momozjm/p/7993236.html

  https://blog.csdn.net/aliven1/article/details/89927910

打包完后:

  技术图片

 

以上是关于axios跨域问题的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

axios跨域问题

vue 解决axios 跨域问题

vue-cli3 axios解决跨域问题

axios可以解决跨域访问的问题吗