webpack跨域代理。一个例子和可以下载的文档

可以在这里下载

首先我新建了一个config.js的文件把域名写在这个文件里。这样所有页面想用的时候直接引入这个文件就可以拿到。当前修改的时候只要修改这个文件就好了。不用到处定义导致的修改时到处找使用到域名的地方。

webpack跨域代理。一个例子和可以下载的文档

要在config-index.js引入这个域名

import cf from 'config的相对位置'     //下面就可以使用cf.apiurl当做域名啦。下面截图我用的config作为文件重命名的。所以也就直接通过config.apiurl

然后再dev下面添加

 proxyTable: {

      "/api": {

         target: config.apiurl,

         changeOrigin: true,

         pathRewrite: {

            "^/api": "/"

         }

       }

   }

webpack跨域代理。一个例子和可以下载的文档

发现这样写完以后报错了

webpack跨域代理。一个例子和可以下载的文档

意思是这里不能使用import来引入。于是我们换一个require就行了

webpack跨域代理。一个例子和可以下载的文档

最后在接口调用的里面

if (config.dev) {//webpack 跨域 代理

  base = "/api/";

}

我下面的例子是使用的axios调用接口的。

webpack跨域代理。一个例子和可以下载的文档

然后我们可以看到在访问接口的时候

webpack跨域代理。一个例子和可以下载的文档

接口访问成功了。

如果我们直接访问接口,也就是把api.js里面的if (config.dev) 这个去掉。然后我们再去访问试试。你看下面跨域了。证明我们跨域代理使用的是正确的啦。

webpack跨域代理。一个例子和可以下载的文档

如果出现跨域其实也可以让后端直接改接口加上一些设置就可以了。但是如果不麻烦后端前端去处理的话,就是使用跨域代理啦。