mic*_*ael 71 ajax node.js express
我正在使用NodeJS和Express.如何区分普通浏览器请求和AJAX请求?我知道我可以检查请求标头,但Node/Exprsss是否公开了这些信息?
rob*_*lep 122
大多数框架都将X-Requested-With标头设置XMLHttpRequest为,Express对其进行了测试:
app.get('/path', function(req, res) {
var isAjaxRequest = req.xhr;
...
});
Run Code Online (Sandbox Code Playgroud)
kum*_*rsh 45
如果req.xhr未设置,例如在Angularjs等框架中删除它,那么您还应检查标头是否可以接受JSON响应(或XML,或XHR作为响应而不是HTML发送的任何内容).
if (req.xhr || req.headers.accept.indexOf('json') > -1) {
// send your xhr response here
} else {
// send your normal response here
}
Run Code Online (Sandbox Code Playgroud)
当然,你必须稍微调整第二部分以匹配你的用例,但这应该是一个更完整的答案.
理想情况下,有角度的团队不应该删除它,但实际上应该找到一个更好的解决方案来解决CORS的飞行前问题,但这就是它现在休息的方式......
| 归档时间: |
|
| 查看次数: |
27734 次 |
| 最近记录: |