首页 > 解决方案 > 为什么在 webpack 项目中发出 axios 请求时忽略 config.proxy?

问题描述

我的目标

我想使用完全有效的 http 代理(鱿鱼)执行axios@0.18.0的请求。我的项目是一个基于webpack模板的vue项目。vue init webpack proxytest

问题

当我尝试执行请求时,axios“忽略”传递的配置对象内的代理属性。

我注意到,当我使用纯 nodejs运行完全相同的代码时,一切正常。

在将 axios 用作 webpack 中的 npm 模块时,除了 axios 请求配置之外,是否需要指定一些配置?

编码

import axios from 'axios';

const config = {
  proxy: {
    host: 'host',
    port: 3128,
  },
  method: 'GET',
};

axios('http://www.bbc.com/', config).then((res) => {
  console.log(res);
}).catch((err) => {
  console.error(err);
});

当然,在测试时,我将“主机”更改为代理 IP。


我尝试将方法属性更改为POST以检查 axios 是否考虑了配置。它确实认为配置已通过。我试图放置一个假端口,以便检查是否考虑了代理属性。不考虑。

输出

输出...

现在,我知道 CORS 是什么了。关键是我在执行请求时不断得到这个输出。如果 axios 使用了代理,我认为不会出现 CORS“错误”,因为我的代理是 VPS。

谢谢你。

标签: node.jsvue.jsproxyaxios

解决方案


您需要配置服务器以接收请求,然后进行测试。这似乎与 webpack 没有任何关系,因为在您的错误中,例如,您从 localhost 向 BBC 发出请求,您很可能犯了这个错误。因此,通过在本地运行 Front 和 Back 来测试您的服务器非常重要。


推荐阅读