在我的代码中出于某种原因,我想区分普通的HTTP请求和AJAX请求(即XML HTTP请求)。
经过大量搜索后,我尝试使用req.isXMLHttpRequest
,但对于这两种类型的请求,都会返回undefined
。
现在我通过在每个HTTP请求中添加一个标记作为isAjax
并使用 true 或 false 值来处理它。
问题:建议的最佳方法是什么?
使用向每个XML HTTP请求添加标记(isAJAX
)( true 或 false )
找出并解决req.isXMLHttpRequest
相关问题。
如果有人告诉我,为什么req.isXMLHttpRequest
正在返回undefined
,会有很大的帮助?
高级谢谢
注意:我正在使用 Node.JS版本0.8.20 和 Express版本3.1.0
答案 0 :(得分:3)
你可以试试这个。
req.xhr
如果它是XMLHttpRequest,则返回true或false。
答案 1 :(得分:1)
关注@scartag回答。
如果您控制发送请求的人(例如,它是您的客户端代码),那么您只需设置HTTP标头X-Requested-With: xmlhttprequest
或更改正文/网址以标记xhr请求。
如果您无法控制发送请求的人,则不能依赖req.xhr
,那么您的选项取决于您的使用案例。例如,如果您只想回复一个适合请求的内容,那么res.format(_)
可能比req.xhr
更有用(这取决于您的客户,但您可以假设客户赢了'请求他们无法处理的格式。