如何使用express在Node.js中区分HTTP请求和XML HTTP请求?

如何使用express在Node.js中区分HTTP请求和XML HTTP请求?,node.js,http,express,xmlhttprequest,Node.js,Http,Express,Xmlhttprequest,在我的代码中,出于某种原因,我想区分普通HTTP请求和AJAX请求(即XML HTTP请求) 在搜索了很多之后,我尝试使用req.isXMLHttpRequest,但对于这两种类型的请求,它都返回未定义的 现在,我通过在每个HTTP请求中添加一个标志来处理它,如isAjax,其值为true或false 问题:建议的最佳方式是什么 使用向每个XML HTTP请求添加标志(isAJAX)的步骤(使用true或false) 查找并修复req.isXMLHttpRequest相关问题 如果有人告诉我,为

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

在搜索了很多之后,我尝试使用
req.isXMLHttpRequest
,但对于这两种类型的请求,它都返回
未定义的

现在,我通过在每个HTTP请求中添加一个标志来处理它,如
isAjax
,其值为true或false

问题:建议的最佳方式是什么

  • 使用向每个XML HTTP请求添加标志(
    isAJAX
    )的步骤(使用true或false)

  • 查找并修复
    req.isXMLHttpRequest
    相关问题

  • 如果有人告诉我,为什么
    req.isXMLHttpRequest
    返回
    undefined
    ,这将非常有帮助

    提前感谢

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

    您可以试试这个

    req.xhr
    
    如果它是XMLHttpRequest或不是XMLHttpRequest,则返回true或false。

    您可以尝试此方法

    req.xhr
    
    如果它是XMLHttpRequest或非XMLHttpRequest,则返回true或false。

    在@scartag answer之后。 如果您控制发送请求的人(例如,它是您的客户机代码),那么您可以使用:xmlhttprequest设置HTTP头
    X-request-With:xmlhttprequest
    ,或者更改正文/url以标记xhr请求

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

    遵循@scartag-answer。 如果您控制发送请求的人(例如,它是您的客户机代码),那么您可以使用:xmlhttprequest设置HTTP头
    X-request-With:xmlhttprequest
    ,或者更改正文/url以标记xhr请求


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

    req.xhr
    有效。但是为什么不
    req.isxmlhttprequest
    。因为它有文档记录。@AmolMKulkarni您应该使用当前的指南,我认为您在使用3.x时看到的版本指南是2.x注意,req.xhr只是检查特定的请求头,浏览器不会自动将其添加到每个XMLHttpRequest中,但仅通过某些javascript框架。这不是正确答案req.xhr通常会在AJAX调用中返回未定义。如果从IE
    req.xhr
    启动的AJAX调用有效,则req.xhr将返回false。但是为什么不
    req.isxmlhttprequest
    。因为它有文档记录。@AmolMKulkarni您应该使用当前的指南,我认为您在使用3.x时看到的版本指南是2.x注意,req.xhr只是检查特定的请求头,浏览器不会自动将其添加到每个XMLHttpRequest中,但这不是正确的答案,req.xhr通常会在AJAX调用中返回undefined。如果从IE启动AJAX调用,req.xhr将返回false