如何在Node.js中使用XHR API

How to use XHR API in Node.js?

本文关键字:XHR API js Node      更新时间:2023-09-26

这是我之前问题的后续内容

假设我有一些javascript代码,它在客户端(在浏览器中)上运行良好。这段代码使用浏览器API进行了大量的XHR调用。

现在我想在node.js中运行这段代码。node.js是否在浏览器中提供XHR API?

原生Node.js不提供浏览器XHR API。但是,有一个节点模块xmlhttprequest可以执行此操作。

如果文件在服务器上,则可以使用fs.readFile或fs.readFileSync.

如果它在远程服务器上,那么您可以使用类似模块的请求来执行异步XHR类型的请求:https://www.npmjs.com/package/request.这需要对代码进行一些重写。

如果您使用xmlhttprequest节点模块,可能对客户端代码的重写最少。实现了节点的浏览器XHR API。

您实际上并不需要XHR,因为您可以使用NodeJS自带的http.request。使用它,您可以发送带有标头和正文的GETPOSTPUT请求。

这是指向文档http.request.

的链接

这就是我们对模块使用Axios的原因。它可以在客户端或服务器端使用,而不需要任何依赖项或代码更改。

节点XMLHttpRequest

nodejs中的示例代码

const XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest
/* --- */
let xhr = new XMLHttpRequest()
xhr.open( 'GET',  'https://example.com' )
xhr.onload = function() {
    
    if ( xhr.status == 200 ) {
        
        console.log( xhr.responseText )
        
    } else {
        
        console.log( `Error: ${xhr.status}` )
        
    }
}
xhr.send()

回复

回复回调

回复承诺

replit异步/等待