【问题标题】:Crafting a Proper GET request using Node JS使用 Node JS 制作正确的 GET 请求
【发布时间】:2014-03-28 16:07:30
【问题描述】:

好的,对于 javaScript 和 Node.js 来说都是新手。

基本上我想做的是使用 asynch 模块(一个 node.js 模块)对多个不同的“网站”进行多次异步调用。

例如,只需向 5 个网站发送 GET 请求,并打印它们的响应。

问题是我正在尝试使用 XMLHttpRequest(); javascript 对象,但它似乎在 Node.js 中不起作用,说它是未定义的。我相信这是因为该对象需要在浏览器中使用。这是真的吗?

无论如何,我如何使用 Node.js 发送获取请求?没有在 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”)和所有其他标头分开。如果我没有得到标题,我该怎么做??

【问题讨论】:

标签: javascript node.js http get


【解决方案1】:

我相信这是因为该对象需要在浏览器中使用。这是真的吗?

不完全是。

  • XMLHttpRequest 不是core JavaScript 的一部分,它是W3C specification
  • 浏览器提供一个 XMLHttpRequest 对象,因此您无需执行任何特殊操作即可在浏览器中使用它。
  • third party XMLHttpRequest 模块可通过 NPM 用于 Node.js。 (我用它来为通常在浏览器中运行的 JS 库编写命令行测试。)

您只需要安装模块并require 它(按照documentation 中的说明)。

【讨论】:

  • 哇,非常感谢。我已经花了好几个小时在教程、谷歌和堆栈交换中试图解决这个问题……太简单了,哈哈。
  • 好的,所以我想出了发送一个“GET”请求。
猜你喜欢
  • 1970-01-01
  • 2015-07-05
  • 2019-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-06
  • 1970-01-01
  • 2020-01-10
相关资源
最近更新 更多