用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);
});