• vue-cli3 中跨域解决方案


    此方案只能用于开发环境,线上最好设置同源策略(遇到个后端,装你妈批)

    前后端不在同一服务器的情况下,前端要访问后端API,可通过在vue.config.js中配置代理服务器。

    0:前提条件

    1:安装vue-lic

    2:安装axios  用于发送请求。

    1:将任何未知请求转发到代理服务器

    如:

    前端地址:127.0.0.1

    后端地址:127.0.0.2

    当访问地址为 127.0.0.1/api,没有匹配到这地址,那么就会被转发到代理服务器127.0.0.2/api

    module.exports={
        devServer:{
            proxy: "http://www.acfun.cn"
        }
    }

    2:多代理控制

    更多代理服务配置项搜索http-proxy-middleware查看

    module.exports = {
        devServer: {
            proxy: {
                '/search': {    // search为转发路径
                    target: 'http://www.acfun.cn',  // 目标地址
                    ws: true, // 是否代理websockets
                    changeOrigin: true   // 设置同源  默认false,是否需要改变原始主机头为目标URL,               
                }
            }
        }
    };

    如:

    当前访问地址为  xxx.xxx.xxx/search时,就会被转发到代理服务器http://www.acfun.cn/search

    xxx.xxx.xxx/search -> http://www.acfun.cn/search

    3:实例

    api.js 文件(主要用于全局配置)

    import Axios from "axios";
    
    let http = Axios.create({
        timeout: 3000,   //超时配置 3秒
        responseType: 'json',   // 响应数据格式
        responseEncoding: 'utf8',  // 响应数据编码
    });
    
    export default http;

    入口文件  main.js

    import Vue from "vue";
    import App from "./App.vue";
    import router from "./router";
    import http from "./api";   // 引用axios全局配置
    
    Vue.config.productionTip = false;
    
    Vue.prototype.$http = http;   // 添加原型方法,这样创建的对象就自带该方法了。
    
    new Vue({
        router,
        render: h => h(App)
    }).$mount("#app");

    vue.config.js 配置文件

    更多代理服务配置项搜索http-proxy-middleware查看

    module.exports = {
        devServer: {
            proxy: {
                '/search': {
                    target: 'http://www.acfun.cn',
                    ws: true,//是否代理websockets
                    changeOrigin: true   // 设置同源  默认false,是否需要改变原始主机头为目标URL
                }
            }
        }
    };

    然后在vue实例对象中直接访问$http方法就行。

    个人项目

    淘宝天猫粉丝专享优惠券

  • 相关阅读:
    python之re模块
    python之shell
    python之zip打包
    shell 处理解析json
    shell 中的传参-字符串传参,dict传参
    xshell 快速复制粘贴设置
    openstack 块存储服务 cinder
    win10系统中安装java环境
    mac上安装pip
    解决 谷歌浏览器报欧呦 崩溃了
  • 原文地址:https://www.cnblogs.com/whnba/p/10680010.html
Copyright © 2020-2023  润新知