Javascript 如何将axios与代理服务器一起使用以进行https呼叫?
这基本上是一个问题 我用的是浏览器。以下代码由webpack编译。 我试过这个: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。 我也用同样的代码尝试了这一点,但不起作用
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)
}