使用Node JS制作一个正确的GET请求
Crafting a Proper GET request using Node JS
对javaScript和Node.js都很陌生。
基本上我要做的是使用asynch模块(一个node.js模块)对许多不同的"网站"进行异步调用。
例如,向5个网站发送一个GET请求,并打印它们的响应。
问题是,我试图使用XMLHttpRequest();javascript对象,但它似乎不工作在Node.js,说它是未定义的。我相信这是因为该对象需要在浏览器中使用。这是真的吗?
无论如何,我如何使用Node.js发送get请求?没有在HTML中嵌入javascript或类似的东西。严格的node . js。这应该很简单,不是吗?
这里有一个非常基本的例子(摘自某本书):
function myFunction(theUrl) {
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", theUrl, false );
xmlHttp.send();
console.log(xmlHttp.responseXml);
console.log("Finished!");
return xmlHttp.responseText;
}
编辑:好的,我已经成功发送了一个"GET"请求(我相信)。
我将输出打印到一个文件(只是为了测试)。除了,我得到了一个负载的XML(也许JSON)回来,但没有"200 OK"的消息在任何地方。
如果我发送一个"HEAD"请求,我什么也得不到。
两个问题:为什么我没有收到200 OK消息?我得到的XML是什么?另外,为什么"HEAD"请求不返回任何东西?Node.JS是否将其剥离?
我想要分离消息响应(希望是"200 OK")和所有其他标头。我怎么能做到这一点,如果我没有得到标题??
我相信这是因为该对象需要在浏览器中使用。这是真的吗?
不完全是。
- XMLHttpRequest不是JavaScript核心的一部分,它是W3C规范 浏览器提供了一个XMLHttpRequest对象,所以你不需要做任何特别的事情就可以在浏览器中使用它。通过NPM, Node.js可以使用第三方XMLHttpRequest模块。(我曾经用它为一个通常在浏览器中运行的JS库编写命令行测试。)
你只需要安装模块和require
它(按照文档中的说明)。
相关文章:
- Wicket在另一个请求之后触发请求
- 如何使请求等待上一个请求完成
- Nodejs一个请求阻塞另一个请求
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- 如何将请求响应传递给另一个请求
- 主干-用一个请求替换整个集合
- Node.js在一个请求中提供多个文件
- 在angular cordova应用程序中发布一个请求中的多个文件
- $http请求在一个请求中返回所有记录而不分页
- 有没有一种方法可以用一个请求加载多个iframe
- 如果用户发送另一个请求,请使用 .abort() 取消现有的 ajax 请求
- 如何使用 angularjs 将$http请求返回的数据用于同一控制器中的另一个请求
- Ajax 触发两次替换 Rails 4 中的最后一个请求内容
- 在完成上一个请求之前中止新的 AJAX 请求
- 如何阻止 ajax 重复上一个请求
- Rails:在一个请求中渲染 html 和 js
- Javascript 一个请求多个 JS 文件
- JavaScript在一个请求中处理不同的内容类型
- MongoDB-组合多个命令来发送和返回一个请求
- Instagram API没有在一个请求中提取所有数据