我正在尝试对GitHub的API进行API调用。XMLHttpRequest在浏览器中工作,但不在节点中
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.github.com/search/users?q=mohamed3on");
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
console.log(xhr.response);
}
}
xhr.send();
此代码在浏览器中运行时执行并返回JSON文件。
{ “TOTAL_COUNT”:1, “incomplete_results”:假, “项目”:[ { “登录”: “Mohamed3on”, “ID”:12295159, “avatar_url”: “https://avatars.githubusercontent.com/u/12295159?v=3” , “gravatar_id”: “”, “URL”: “”, “html_url”: “https://github.com/Mohamed3on”, “followers_url”: “https://api.github.com/users/Mohamed3on/followers”, “following_url”: “https://api.github.com/users/Mohamed3on/following {/ other_user}”, “gists_url”:“https://api.github.com/users/Mohamed3on/gists {/ gist_id}”, “starred_url”:“https://api.github.com/users/Mohamed3on/starred {/所有者} {/回购}”, “subscriptions_url”: “https://api.github.com/users/Mohamed3on/subscriptions”, “organizations_url”: “https://api.github.com/users/Mohamed3on/orgs”, “repos_url”: “https://api.github.com/users/Mohamed3on/repos”, “events_url”: “https://api.github.com/users/Mohamed3on/events {/隐私}” , “received_events_url”: “https://api.github.com/users/Mohamed3on/received_events”, “类型”: “用户”, “site_admin”:假, “得分”:49.68772 }]}
然而,当我运行在本地( Webstorm或Node)
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.github.com/search/users?q=mohamed3on");
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
console.log(xhr.response);
}
}
xhr.send();
在控制台中没有输出任何内容。
永远不要做同步请求,它被弃用,并且一个可怕的做法,使用'onreadystatechange'回调 – charlietfl
@charlietfl好的,我已经做到了。但它仍然不会在节点中产生输出。 –
为什么在节点中使用'XMLHttpRequest'?有更好的库进行请求 – charlietfl