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

打包完后:

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM