跨域是什么

简单的讲就是你在一个地方使用另一个地方的资源,被浏览器给挡下来了,不让不用!当然,它挡下来是有自己理由的:为了安全(╬▔皿▔)╯。

解决跨域

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

原创者:曦12原文链接:https://www.cnblogs.com/xi12/p/16690090.html转载请注明原创者添加原文链接!