是node.js中的AJAX - 以及为什么

时间:2014-08-17 08:58:31

标签: javascript ajax node.js

我有一个基于浏览器的javascript背景,想要熟悉node.js.据我所知,node.js是一个基于V8引擎的框架,它提供服务器端的javascript以及一些内置模块。

我的问题是: node.js是否支持AJAX调用?为什么/如何完成?当然节点可以处理接收AJAX请求,就像所有其他服务器端技术(python,ruby,php,j2ee)一样 - 但我问它是否可以触发 AJAX调用。

JavaScript是一种事件驱动的技术(本质上是异步的)。浏览器需要从服务器获取外部数据,这就是他们使用XMLHttpRequest的原因。由于是服务器端,node.js不必触发AJAX,因为它需要调用其他服务器。如果它需要与其他服务器进行通信,它可以像使用其他技术那样使用普通套接字/服务(python,ruby等)。但是,无论如何,XMLHttpRequest内置于浏览器中,因此可能没有理由将其从节点中删除......也许它可能会以某种方式有用。

我很感激能够解释这个话题的答案。

2 个答案:

答案 0 :(得分:4)

  

node.js是否支持AJAX调用?

Ajax是使用JavaScript从浏览器发出HTTP请求而不离开页面的过程。

由于Node(在WWW的上下文中)通常在服务器上运行,因此通常不会这样做。

你可以:

  • 使用Node运行HTTP服务器,让客户端JavaScript使用Ajax向该服务器发出请求
  • 驾驶浏览器(例如通过PhantomJS或Selenium)并加载一个让浏览器执行Ajax调用的页面
  • 从Node
  • 发出HTTP请求
  

由于是服务器端,node.js不必触发AJAX,因为它需要调用其他服务器。

一台服务器与另一台服务器交谈有很多理由

  

如果它需要与其他服务器通信,它可以像使用其他技术那样使用普通套接字/服务(python,ruby等)。

我不记得上次我使用Python,Ruby或任何其他语言通过网络获取数据时我没有使用HTTP(以及预先编写的HTTP库)。

  

XMLHttpRequest内置于浏览器中,因此可能没有理由将其从节点中删除

Node并不是一个删除了位的浏览器,因此XMLHttpRequest还没有从中删除,它从来就不在其中。

Node有一个内置的HTTP模块,它可以在NPM上发出HTTP个请求和几个提供备用API的库(包括implements XMLHttpRequest specification)。< / p>

答案 1 :(得分:1)

它不是内置的,但有一个NPM模块:https://www.npmjs.org/package/xmlhttprequest