簡(jiǎn)單的講就是你在一個(gè)地方使用另一個(gè)地方的資源,被瀏覽器給擋下來(lái)了,不讓不用!當(dāng)然,它擋下來(lái)是有自己理由的:為了安全(╬▔皿▔)╯。
創(chuàng)新互聯(lián)主營(yíng)左云網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開(kāi)發(fā)公司,左云h5小程序制作搭建,左云網(wǎng)站營(yíng)銷(xiāo)推廣歡迎左云等地區(qū)企業(yè)咨詢
我是用vue開(kāi)發(fā)的,就vue代理模式解決跨域說(shuō)明一下。
1、在vue.config.js中這樣寫(xiě):
let devProxy = {
//獲取ip信息
'/getIpMsg': {
target: "https://whois.pconline.com.cn/ipJson.jsp",//真實(shí)地址
ws: true,
changeOrigin: true,
pathRewrite: {
'/getIpMsg': ''
},
},
};
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true,
publicPath: process.env.NODE_ENV === "production" ? "./" : "/",
devServer: {
port: 8080,//端口
open: false,//項(xiàng)目啟動(dòng)后是否在瀏覽器自動(dòng)打開(kāi)
proxy: devProxy//代理服務(wù)器
},
})
target就是自己需要代理的真實(shí)地址getIpMsg你是可以自定義的。
2、創(chuàng)建一個(gè)http.ts(我是ts的,你也可以js):
import axios from "axios";
//創(chuàng)建請(qǐng)求
function createServe(config: any) {
let serve = axios.create({
timeout: 5000 //超時(shí)
});
//請(qǐng)求攔截器
serve.interceptors.request.use(
config => {
return config;
},
error => {
return Promise.reject(error)
}
)
//響應(yīng)攔截器
serve.interceptors.response.use(
response => {
return response;
},
error => {
return Promise.reject(error)
}
)
return serve(config);
}
export default createServe;
3、創(chuàng)建一個(gè)request.ts:
import createServe from "./http"
//獲取ip信息
export function getIpMsg(params = {}) {
return createServe({
method: "GET",
url: '/getIpMsg',
params
})
}
4、這樣使用:
import { getIpMsg } from "@/api/request";
function test(){
getIpMsg()
.then(res => {
console.log(res);
})
}