Vuejs2.0 如何利用proxyTable實現(xiàn)跨域請求

前言:

本地項目在請求遠端服務(wù)器接口時,不可避免的會遇到跨域問題,即便是設(shè)置了Access-Control-Allow-Origin:* ,在遇到登錄這些需要本地存入cookie的也會很頭痛,這里筆者介紹一個在vue-cli中配置代理來解決的辦法。

在~/config/dev-server.js中 使用了非常強大的 http-proxy-middleware 包。更多高級用法,請查閱其文檔。


用法:

比如我們要請求的遠端服務(wù)器為:http://192.168.400:3000

proxyTable: {
      '/api/': {
        target: 'http://192.168.400:3000',
        changeOrigin:true,   //set the option changeOrigin to true for name-based virtual hosted sites
        pathRewrite: {
          '^/api': '/api'
        }
      },
    },
  • 通過設(shè)置changeOrigin:true 開啟代理
  • pathRewrite 意為重寫路徑

示例:

比如要請求的接口為http://192.168.400:3000/api/main/getUserInfo.action

this.$http.post('/api/main/getUserInfo.action')
  .then(res=>{
    console.log(res)
  })

后續(xù):

在實際工作中,我們還需要做些其他的,比如在axios中配置baseUrl:

/**
 * Created by Administrator on 2017/4/11.
 */
import axios from 'axios';

// 添加響應(yīng)攔截器
axios.interceptors.request.use(function (config) {
  // 配置發(fā)送請求的信息

  return config;
}, function (error) {
  return Promise.reject(error);
});

axios.interceptors.response.use(function (response) {
  // 配置請求回來的信息

  return response;
}, function (error) {
  return Promise.reject(error);
});

var http = axios.create({
  timeout: 8000,  /*設(shè)置請求超時時間*/
  baseURL:'http://192.168.400:3000', 

});

// Alter defaults after instance has been created
http.defaults.headers.common['Authorization'] = '';

export default http;  

/**導(dǎo)出http,在mainjs中引用
import http from './config/axiosConfig';
Vue.prototype.$http = http;
**/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容