vue中代理解决跨域
跨域是什么
简单的讲就是你在一个地方使用另一个地方的资源,被浏览器给挡下来了,不让不用!当然,它挡下来是有自己理由的:为了安全(╬▔皿▔)╯。
解决跨域
我是用vue开发的,就vue代理模式解决跨域说明一下。
1、在vue.config.js中这样写:
let devProxy = { //获取ip信息 '/getIpMsg': { target: "https://whois.pconline.com.cn/ipJson.jsp",//真实地址 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,//项目启动后是否在浏览器自动打开 proxy: devProxy//代理服务器 }, })
target就是自己需要代理的真实地址getIpMsg你是可以自定义的。
2、创建一个http.ts(我是ts的,你也可以js):
import axios from "axios"; //创建请求 function createServe(config: any) { let serve = axios.create({ timeout: 5000 //超时 }); //请求拦截器 serve.interceptors.request.use( config => { return config; }, error => { return Promise.reject(error) } ) //响应拦截器 serve.interceptors.response.use( response => { return response; }, error => { return Promise.reject(error) } ) return serve(config); } export default createServe;
3、创建一个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); }) }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了