Używam NodeJS z Expressem. Jak odróżnić zwykłe żądanie przeglądarki od żądania AJAX? Wiem, że mogę sprawdzić nagłówki żądań, ale czy Node/Exprsss ujawniają te informacje?Wykrywanie żądań AJAX na NodeJS za pomocą Express
Odpowiedz
Większość ram ustawić nagłówek do XMLHttpRequest
X-Requested-With
, dla którego Express test:
app.get('/path', function(req, res) {
var isAjaxRequest = req.xhr;
...
});
Dokładnie to, czego chciałem, dzięki. – michael
i co dla frameworków, które ** nie ** ustawiają? Jak AngularJS? –
W przypadku req.xhr
nie jest ustawiony, na przykład w ramach takich jak angularjs, where it was removed, to należy również sprawdzić czy nagłówek może zaakceptować odpowiedź JSON (lub XML, czy cokolwiek XHR wysyła jako odpowiedź zamiast HTML).
if (req.xhr || req.headers.accept.indexOf('json') > -1) {
// send your xhr response here
} else {
// send your normal response here
}
Oczywiście trzeba trochę zmodyfikować drugą część, aby dopasować ją do konkretnego przypadku, ale powinna to być bardziej kompletna odpowiedź.
Idealnie kątowa zespół powinien nie zostały usunięte, ale powinny rzeczywiście znaleźć lepszego rozwiązania problemu wstępnego lotu Cors”, ale tak to spoczywa teraz ...
Podoba mi się również rozwiązanie sugerowane w linku: po prostu dodaj 'X-Requested-With' z powrotem do' $ httpProvider', jeśli zależy ci na tej funkcjonalności. – robertklep
Yup, to jeden sposób, ale na wypadek, gdyby inne frameworki zostały znalezione z równie leniwymi programistami, to jest to dla nich :) –
Dla API do użytku wewnętrznego, uważam, że dodanie nagłówka z powrotem jest właściwym rozwiązaniem. Jeśli twój interfejs API będzie używany przez inne osoby, to na szczęście. Chociaż możesz wymagać od deweloperów dodania tego nagłówka: programiści powinni być na tyle sprytni, aby móc to zrobić. –
- 1. Wykrywanie żądań AJAX w przeglądarce (strona klienta)
- 2. Anulowanie żądań AJAX podczas lotu za pomocą Jquery .ajax?
- 3. Obsługa anulowanych żądań za pomocą Express/Node.js i Angular
- 4. Wykrywanie HTTPS za pomocą JavaScriptu
- 5. nodejs/express. sesja regeneracji
- 6. Bezpieczeństwo żądań AJAX
- 7. Debugowanie żądań AJAX
- 8. Wykrywanie linii | Wykrywanie kątów za pomocą Java
- 9. Wykrywanie żądań HTTPS w PHP
- 10. Grzeczna częstotliwość żądań AJAX?
- 11. Pisanie aplikacji czasu rzeczywistego za pomocą NodeJS
- 12. Kod powrotu zwrotnego Nodejs Express z Re.Render
- 13. Wykrywanie anomalii za pomocą Pythona
- 14. Wykrywanie środowiska za pomocą Meteor.js?
- 15. Wywoływanie już zdefiniowanych tras na innych trasach w Express NodeJS
- 16. Wykrywanie kolorów za pomocą C#
- 17. Jak przeprowadzić uwierzytelnianie za pomocą Node.js, Express i Mongoose?
- 18. Ograniczanie jQuery i kolejkowanie żądań AJAX
- 19. Wiele żądań AJAX w jQuery
- 20. Nodejs: Express + RedisStore, jeszcze nieokreślony nr.
- 21. Węzeł, Express, Ajax i Jade Przykład
- 22. Przetwarzanie długich żądań za pomocą DropWizard
- 23. IIS Express 7.5 nie przetwarza jednocześnie żądań
- 24. Obsługa wielu żądań za pomocą C# HttpListener
- 25. Tworzenie żądań HTTP za pomocą Clojure
- 26. nodeJS-Express lub Meteor lub Derby
- 27. Sprawdź nagłówki żądań za pomocą ServiceStack
- 28. Pobieranie części pliku za pomocą żądań HTTP
- 29. Angular 2 http post + Nodejs express
- 30. nodejs (express) czy możliwe jest stosowanie kwerendy?
zawsze pocieszyć. log() obiekt req. W ten sposób mogę sprawdzić liczbę użytecznych obiektów, które zawiera. –
@AkshatJiwanSharma Zacząłem też to robić, szalenie jest myśleć, że wcześniej nie używałem tej techniki! – sharkman