我正在使用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