Was ist die beste Methode, um AJAX-Anfragen und andere Browser-HTTP-Anfragen zu unterscheiden? Ich benutze Vanilla NodeJS mit AtomicJS als AJAX-Bibliothek. Es scheint nicht den 'X-Requested-With'-Header zu setzen, den ich gelesen habe, wurde von JQuery verwendet, um AJAX-Anfragen anzuzeigen. Sollte ich zu einer Bibliothek wechseln, die das tut? Gibt es eine andere Möglichkeit, AJAX-Anfragen zu erkennen? Sollte ich nur versuchen, den Header manuell zu setzen, und gibt es mögliche Probleme dabei?Erkennen von AJAX-Anfragen in Vanilla NodeJS ohne JQuery
Antwort
Es gibt keine zuverlässige Möglichkeit, den Unterschied zu erkennen (kurz, wenn Sie explizit einen Header oder ein anderes Kennzeichen für alle Ihre eigenen Anfragen setzen). Noch wichtiger ist, dass es nicht wirklich wichtig ist, wie die Anfrage gesendet wurde.
Sie könnten explizit angeben, dass die Anfrage von einer Ajax-Anfrage in der Kopfzeile oder im Hauptteil der Anfrage stammt, aber wahrscheinlich wäre die bessere Möglichkeit, einen separaten Endpunkt auf dem Server für eine Ajax-Anfrage zu haben .
Zum Beispiel Ihre uri für eine nicht Ajax-Request könnte
http://myserver.com/non-ajax-uri
sein und dann könnte man einen anderen Endpunkt bei
http://myserver.com/ajax-uri
haben Wenn die meisten das Verhalten einfach zwischen den beiden Endpunkten geteilt wird kapseln es in einer anderen Funktion, die beide Endpunkte teilen.
Also sagen, ich habe eine Ajax Anfrage, deren Rolle ist es, einige JSON-Daten vom Server zu greifen und zu übergeben zu einem Skript Client-Seite. Wenn ich einen separaten Endpunkt verwende, wie kann ich verhindern, dass Benutzer einfach zu http://myserver.com/ajax-uri navigieren und eine Reihe von Rohdaten sehen? –
@ S.Liu Ich nehme an, Sie haben bereits einige Autorisierung/Authentifizierungsmechanismus vorhanden, und Sie können nicht ausdrücklich einen autorisierten Benutzer für den direkten Zugriff auf die URI verbieten, können Sie es effektiv verbergen, indem Sie keine direkte Verknüpfung zu der URI von der Anwendung erstellen . Es sollte keine Sicherheitsprobleme geben, wenn der Benutzer bereits autorisiert ist. Wenn die Daten nicht in einem hässlichen Format angezeigt werden sollen, sollte dies kein Problem darstellen. – Hopeless
- 1. Namespace Vanilla JavaScript-Ereignisse wie in jQuery
- 2. jQuery `index()` Äquivalent in Vanilla JS
- 3. Überwindung von CORS mit XMLHttpRequest ohne JSONP in Vanilla JavaScript
- 4. Nodejs-Bibliothek ohne Nodejs
- 5. Vanilla Masker und jQuery auf Keyup Problem
- 6. MVC in Vanilla JavaScript
- 7. Kann Jquery in Nodejs
- 8. Installation von NodeJS ohne Sudo in Ubuntu
- 9. Erkennen von IE mit jQuery
- 10. erkennen AJAX-Anfrage von JQuery
- 11. Wie kann ich diese jQuery Ergebnisse mit Vanilla JavaScript erhalten?
- 12. Erkennen eines Hyperlinks von jquery
- 13. Vanilla JS Plugin Vorlage
- 14. Typescript-Befehlszeilenkompilierung ohne NodeJS
- 15. Textbox-Feld erkennen Ändern jQuery
- 16. jquery erkennen Änderung in Klassenzuordnung
- 17. Tastenanschläge ohne Textfelder erkennen?
- 18. Gibt es ein NodeJS-Äquivalent zum Erkennen von Zwischenablageänderungen?
- 19. jQuery: Erkennen einer Browsergröße
- 20. jQuery erkennen Klassenauswahl nicht funktioniert aber ohne es
- 21. Ist es möglich, jQuery zu Vanilla JS zu transponieren?
- 22. Animierte Jquery Side Nav zu Vanilla JS konvertieren
- 23. Android Webview - Erkennen von Jquery Dokument bereit
- 24. Vanilla JS .style funktioniert, aber jQuery .css ist nicht?
- 25. NodeJS - jQuery DELETE-Methode
- 26. NodeJS jQuery benötigt jsdom
- 27. Was die Bedeutung von „Vanilla“ Objektliste
- 28. jQuery Erkennen nichts von meinen Wählern
- 29. Trigger benutzerdefinierte Ereignis ohne jQuery
- 30. MDC-Web: Einrichten von MDC-Web Vanilla
Warum nicht einfach einige Daten in der Ajax-Anfrage übergeben, und überprüfen, ob es da ist, sollten Sie nicht wirklich mehr benötigen – adeneo