0

在我的代码中,出于某种原因,我想区分普通的 HTTP 请求和 AJAX 请求(即 XML HTTP 请求)。

经过大量搜索后,我尝试使用req.isXMLHttpRequest,但是对于这两种类型的 Request 它都会返回undefined

现在我通过在每个 HTTP 请求中添加一个标志来处理它,如isAjax

问题:最好的建议方法是什么?

  1. isAJAX使用向每个 XML HTTP 请求添加标志 ( ) (使用truefalse

  2. 找出并修复req.isXMLHttpRequest相关问题。

req.isXMLHttpRequest如果有人告诉我,为什么要返回,将会有很大帮助undefined

高级感谢

注意:我使用的是Node.JS 版本 0.8.20Express 版本 3.1.0

4

2 回答 2

3

你可以试试这个。

req.xhr

如果它是 XMLHttpRequest 与否,这将返回 true 或 false。

于 2013-02-23T08:12:12.997 回答
1

跟随@scartag 回答。如果您控制发送请求的人(例如,它是您的客户端代码),那么您只需设置 HTTP 标头X-Requested-With: xmlhttprequest或更改正文/url 以标记 xhr 请求。

如果您不控制发送您无法依赖的请求的人,req.xhr那么您的选择取决于您的用例。例如,如果您只想使用适合请求的内容进行响应,那么res.format(_)可能比req.xhr(这取决于您的客户,但您可能会假设客户不会请求他们无法处理的格式)更有用。

于 2013-08-15T14:29:02.100 回答