我正在使用NodeJS和Express。我该如何区分普通的浏览器请求和AJAX请求?我知道我可以检查请求标题,但Node/Exprsss是否公开这些信息?使用Express在NodeJS上检测AJAX请求
回答
大多数框架设置X-Requested-With
头XMLHttpRequest
,为表达有一个测试:
app.get('/path', function(req, res) {
var isAjaxRequest = req.xhr;
...
});
正是我想要的,谢谢。 – michael 2013-04-11 09:47:57
以及**不设置它的框架是什么?像AngularJS一样? – 2015-02-16 11:30:59
万一req.xhr
没有设置,在框架如Angularjs,where it was removed说,那么你也应该检查头部是否可以接受JSON响应(或XML,或者任何您的XHR作为响应而不是HTML发送)。
if (req.xhr || req.headers.accept.indexOf('json') > -1) {
// send your xhr response here
} else {
// send your normal response here
}
当然,你将不得不微调第二部分以匹配你的用例,但这应该是一个更完整的答案。
理想情况下,角队不应该删除它,但实际上应该已经找到了CORS”飞行前的问题更好的解决方案,但它是如何掌握现在...
我也喜欢链接中建议的解决方案:如果您依赖此功能,只需将'X-Requested-With'添加回'$ httpProvider'。 – robertklep 2015-02-16 15:49:16
是的,这是一种方式,但是为了防止其他框架与懒惰的开发者一起被发现,那么对他们来说:) – 2015-02-17 07:10:42
对于内部使用的API,我确实认为添加回头是正确的。如果你的API将被其他人使用,尽管运气确实如此。尽管您也可以要求开发人员添加此标题:开发人员应该足够聪明,能够做到这一点。 – 2016-01-22 15:24:21
- 1. 检测Ajax请求
- 2. 检测AJAX请求
- 3. 使用PHP在Lighttpd Web服务器上检测ajax请求
- 4. 由jquery检测ajax请求
- 5. 如何在后端使用nodejs + express处理ajax/http-post请求(responsetype:arraybuffer)
- 6. NodeJS/Express中的时间请求
- 7. NodeJS Express DynamicView助手与http请求
- 8. 确定内部请求Nginx + NodeJS Express
- 9. NodeJS Express - 全球唯一请求标识
- 10. 检测图像请求nodejs上的MIME类型更改
- 11. Rails检测请求是否为AJAX
- 12. 在ajax请求上检测跨域重定向
- 13. 检测使用JQuery或Javascript的任何AJAX调用/请求
- 14. 使用nodejs,express,body-parser从GET请求解析正文?
- 15. 如何使用NodeJS Express控制PUT请求
- 16. 检查Ajax请求
- 17. 使用QUnit单元测试AJAX请求
- 18. 检测ajax请求到正常请求节点js
- 19. NodeJS请求模块在6个Ajax请求后停止工作
- 20. 使用nodejs的SOAP请求
- 21. 在Nodejs和Express上使用Mysql(node-mysql)
- 22. 使用get参数检测Ajax请求的原因
- 23. 使用JMeter加载测试Express API(nodejs)
- 24. 如何检测意外的请求在Express中请求正在传送到子进程中的请求正文
- 25. 使用ajax GET请求测试Django模板 - 未调用ajax请求
- 26. Ajax POST请求发送undefined到Express
- 27. node.js + express:`sendfile`给Ajax请求给出404
- 28. jQuery - 检测所有的AJAX请求页上
- 29. 检测AJAX请求上的304重定向
- 30. 如何检测ajax请求上的php服务器超时
我总是安慰。 log()req对象。这样我可以检查它包含的许多有用的对象。 – 2013-04-11 10:13:34
@AkshatJiwanSharma我也开始这样做了,以为我之前没有使用这种技术是疯狂的! – sharkman 2013-07-18 18:48:43