• Vue如何在webpack设置代理解决跨域问题


    在开发过程中我们请求数据有时候调用的是第三方接口,此时便会遇到一个问题:跨域限制。对于跨域问题的解释就不详细叙述了,要了解的请自行百度。一般跨域问题控制台会报这个错:

    很多情况下后台会给我们做请求代理,当后台没有帮你的时候只能自己解决了,Vue-cli这里我用的是webpack,那么我们需要在webpack上做代理设置,具体步骤如下:
            假设请求地址为http://baidu.com/img/upload/file。
            1.在config/index.js文件的dev: {   proxyTable: { }}写入要跨域代理的链接地址,如下图所示:
                       
             注意: '/upload'为匹配项,我们匹配项写'/upload',那么当我们npm run dev把本地服务跑起来后localhost:8080/upload/file就是我们的代理地址了。
                    target参数填写被请求的地址,比如第三方接口,比如上面的http://baidu.com/img/upload/file;
                    changeOrigin参数是如果接口跨域需要配置这个参数;
                    pathRewrite参数是重写地址;
                    还有一个参数secure,如果是https接口需要配置这个参数;
     
            2.在config/dev.env.js文件中配置,如下图所示:
                                         
     
            3.在config/prod.env.js文件中配置,如下图所示:
            注意:在此处的upload填写'"//baidu.com/img/upload/"',不需要写'http:',在最后切记要加上'/';
     
            此时webpack的代理配置已经完成,需要重启服务,然后写请求函数就可以了,我使用的是axios搭配qs,所以请求函数为:
            export const uploadFile = params => { return axios.post('/upload/file', qs.stringify(params)).then(res => res.data)};
            请求函数各自写的不一样,在此只是想表达请求函数第一个参数url要写'/upload/file',这样相当于请求http://baidu.com/img/upload/file。至此跨域问题已经解决,亲测有效。
     
       配置完要重新编译 npm run dev
     
      如果执行上面操作还不行试试
      
    重装安装request模块,执行:
    
    npm remove request
    
    npm install requset

      配置完要重新编译 npm run dev

     
              转载:http://www.cnblogs.com/zishang91/p/8909900.html,以便有错误可以及时修改,若有错漏不足之处,请见谅并且指点,谢谢!!!
     
     
  • 相关阅读:
    "废物利用"也抄袭——“完全”DIY"绘图仪"<三、上位机程序设计>
    "废物利用"也抄袭——“完全”DIY"绘图仪"<二、下位机程序设计>
    "废物利用"也抄袭——“完全”DIY"绘图仪"<一、准备工作>
    我还活着,我回来了
    链表的基础操作专题小归纳
    文件的基础操作专题小归纳
    正整数序列 Help the needed for Dexter ,UVa 11384
    偶数矩阵 Even Parity,UVa 11464
    洛谷-跑步-NOI导刊2010提高
    洛谷-关押罪犯-NOIP2010提高组复赛
  • 原文地址:https://www.cnblogs.com/jasonLiu2018/p/11995500.html
Copyright © 2020-2023  润新知