伸出手去看看是否有人可以告诉我这里我的代码出错的地方。我是node.js的新手,并且在公司代理人背后,这让我很难开始。
我尝试在node.js中使用 GET 方法创建 xmlhttprequest 时收到以下错误我正在使用没有任何框架的纯JavaScript,您可以从下面的代码中看到。
Error:getaddrinfo ENOTFOUND xxx-api.xxx.com xxx-api.xxx.com :443
at errnoException (dns.js:28:10)
at GetAddrInforReqWrap.onlookup [as incomplete] (dns.js:76:26)
由于我支持代理,我尝试了各种方法来“ npm install xxxx”工作。最后,在 Fiddler 的“规则”中设置“自动验证”并更改npm配置设置如下所示。
registry=http://registry.npmjs.org/
proxy=http://127.0.0.1:8888/
https-proxy=http://127.0.0.1:8888/
http-proxy=http://127.0.0.1:8888
strict-ssl=false
在此之后, npm install xmlhttprequest 对我来说很好。所以我继续执行我的GET请求,如下所示:
function login()
{
return new Promise(function (resolve, reject) {
var url = 'https://xxx-api.xxx.com/v1/login';
var method='GET';
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr)
{
xhr.open(method, url, true);
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader('user', 'xxxx');
xhr.setRequestHeader('password','xxxx');
}
else if (typeof XDomainRequest != "undefined")
{
xhr = new XDomainRequest();
xhr.open(method, url);
}
else
{
xhr = null;
}
if (!xhr)
{
console.log('CORS not supported');
}
xhr.onload = function()
{
text = xhr.responseText;
obj=JSON.parse(text);
c=obj.certificate;
if (this.status >= 200 && this.status < 300) {
resolve(xhr.responseText);
}
else {
reject({
status: xhr.status,
statusText: xhr.statusText
});
}
};
xhr.onerror = function() {
console.log('There was an error making the request.');
console.log(xhr.statusText);
reject({
status: xhr.status,
statusText: xhr.statusText
});
};
xhr.send();
});
}
您可以在此处看到我正在制作CORS API请求。但是,这会返回上面的错误。
我使用了nslookup xxx-api.xxx.com
并且它返回了我的服务器,地址和名字完全没问题。所以我怀疑这不是dns或连接问题。
但是,如果我在公司网络外部的个人笔记本电脑上尝试相同的代码而不更改任何代理设置,则一切都按预期工作。
非常感谢任何帮助。提前谢谢!