Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将axios与代理服务器一起使用以进行https呼叫?_Javascript_Axios - Fatal编程技术网

Javascript 如何将axios与代理服务器一起使用以进行https呼叫?

Javascript 如何将axios与代理服务器一起使用以进行https呼叫?,javascript,axios,Javascript,Axios,这基本上是一个问题 我用的是浏览器。以下代码由webpack编译。 我试过这个: const axios=require('axios'); var res=等待axios.get('https://api.ipify.org?format=json', { 代理:{ 主机:“代理url”, 港口:80, 身份验证:{用户名:“我的用户”,密码:“我的密码”} } }); console.log(res.data);//提供我的ip,而不是代理的ip。 我也用同样的代码尝试了这一点,但不起作用

这基本上是一个问题

我用的是浏览器。以下代码由webpack编译。 我试过这个:

const axios=require('axios');
var res=等待axios.get('https://api.ipify.org?format=json', {
代理:{
主机:“代理url”,
港口:80,
身份验证:{用户名:“我的用户”,密码:“我的密码”}
}
});
console.log(res.data);//提供我的ip,而不是代理的ip。
我也用同样的代码尝试了这一点,但不起作用:

const axios=require('axios-https-proxy-fix');
然后,我尝试使用httpsAgent:

const axios=require('axios');
const HttpsProxyAgent=require('https-proxy-agent')
var代理=新的HttpsProxyAgent('http://my-user:my-pass@proxy-url:port');
var res=等待axios.get('https://api.ipify.org?format=json', {
httpsAgent:代理,
});
console.log(res.data);//提供我的ip,而不是代理的ip。
这是虫子吗?我是被诅咒了还是在阅读文档时遇到了问题?

上有一个未解决的问题

该问题自3月31日起被标记为错误,尚未解决

看来你没有被诅咒,只是axios中的一个bug

您可以将详细信息添加到该线程中,以便开发团队确定此问题的优先级


如果你不能等待这个问题得到解决,你可以考虑使用“Sui-Strusle”在评论中提出。

< AXIOS的<代码>配置。代理< /代码>是No.js。我认为这在浏览器中是没有意义的


您可以检查并找不到与代理相关的任何东西。

< P>如果您想使用AXIOS并围绕问题进行处理,那么考虑使用代理服务器中的HTTPS代理代理,如

中提到的那样。
如果您试图通过HTTP代理访问HTTPS URL,则需要创建HTTPS-HTTP隧道


我在本文中找到了此问题的解决方案:。现在它工作得很好

如果您使用的是MERN堆栈应用程序,请尝试以下操作

Express server正在侦听端口
5000
在React应用程序的
package.json

添加“代理”:http://localhost:5000/”“像这样

 "scripts": {
    .....
    ....
  },

  "proxy": "http://localhost:5000/"
  ,

  "eslintConfig": {
    .....
    ...
  },
向API发出请求时,例如获取用户的数据

const fetchUser = (userId) => {
    
     const res = await axios.get(`/api/users/${userId}`)
     console.log(res.data)
}


PS:别忘了
/api/users中的
/
,这让我哭了好几天。这真是一件愚蠢的事情。

一般来说,对代理不太熟悉,更不用说axios了,但一看,https请求的端口真的应该是80吗?你希望得到什么ip?您是否知道您可能正在使用ISP提供的单个外部ip浏览internet?如果从axios中删除代理,结果会怎样?@obermillerk它可以正常工作。我通过在线代理检查器进行了测试,我的代理很好,即使通过端口80通过HTTPS也可以。您考虑过使用其他解决方案吗?我想到了FetchAPI,不管怎样,它将来可能会取代Axios等。在这种情况下,我想这个答案会很有趣:的确。。。我会将我在这里所说的内容发布到X-post上,但我刚刚使用node fetch进行了测试,在5分钟内,我已经能够完成在axios上两天内没有成功完成的工作。我会坚持使用节点获取。感谢您的回答和时间。欢迎提供指向解决方案的链接,但请确保您的答案在没有它的情况下是有用的:这样,您的其他用户就会知道它是什么以及为什么存在,然后引用您链接到的页面的最相关部分,以防目标页面不可用。但在节点中似乎也不起作用。。。
const fetchUser = (userId) => {
    
     const res = await axios.get(`/api/users/${userId}`)
     console.log(res.data)
}