zoukankan      html  css  js  c++  java
  • 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方法就行。

    个人项目

    淘宝天猫粉丝专享优惠券

  • 相关阅读:
    springMVC-MyBatis-Mysql 环境下, 返回时间格式不是指定格式
    大话设计模式--第一章 简单工厂设计模式
    java编程思想第四版第十八章总结
    尚学堂-马士兵-专题-正则表达式
    张孝祥java高新技术 --- jkd1.5 新特性 -- 精华总结
    Python—文件进阶操作
    Python—文件读写操作
    Python—异常处理
    Python—网络抓包与解包(pcap、dpkt)
    Python—其它模块
  • 原文地址:https://www.cnblogs.com/whnba/p/10680010.html
Copyright © 2011-2022 走看看