vue+axios+webpack+node配置跨域(用node寫代理服務器)

用node設置代理
服務器之間是沒有跨域問題的

const http = require('http');
const request = require('request');

const hostname = '127.0.0.1';
const port = 8010;

const interURL = 'https://www.easy-mock.com/mock/5d4b7d772b863e1413ad66ab/iVP' ;
//要訪問的接口地址

// 創建一個 API 代理服務
const apiServer = http.createServer((req, res) => {
    const url = interURL  + req.url;
    const options = {
        url: url
    };

    function callback (error, response, body) {
        if (!error && response.statusCode === 200) {
            // 設置編碼類型,否則中文會顯示爲亂碼
            res.setHeader('Content-Type', 'text/plain;charset=UTF-8');
            // 設置所有域允許跨域
            res.setHeader('Access-Control-Allow-Origin', '*');
            // 返回代理後的內容
            res.end(body);
        }
    }
    request.get(options, callback);
});
// 監聽 8010 端口
apiServer.listen(port, hostname, () => {
    console.log(`接口代理運行在 http://${hostname}:${port}/`);
});

在終端運行node 文件 後會顯示
在這裏插入圖片描述
然後在vue項目中引入axios,新建個js,注意上面的代理不要關閉,下面需要監聽這個端口

/* axios封裝 */
import axios from 'axios';

//基本配置
const Util = {
  apiPath: 'http://127.0.0.1:8010/',
};

//Ajax通用配置
Util.ajax = axios.create({
  baseURL: Util.apiPath
});
//添加響應攔截器
Util.ajax.interceptors.response.use(res => {
  return res.data;
});

export default Util;

需要使用的地方:

	import $ from 文件地址;
	  $.ajax.get('接口')
          .then(res => {
            console.log('1');
            console.log(res);
          })
          .catch(error => {
            console.log(error);
          });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章