Wie man einen AJAX Anruf ohne jQuery macht?
Wie man ein AJAX-Aufruf mittels JavaScript, ohne die Verwendung von jQuery?
Kommentar zu dem Problem
Bitte beachten Sie, dass, während viele der Antworten hier suggerieren hören für readystatechange moderne Browser unterstützen das Last, Abbrechen, Fortschritte und - Fehler Veranstaltungen für XMLHttpRequest (du wirst wahrscheinlich nur die Sorge um Last obwohl).
@ImadoddinIbnAlauddin zum Beispiel, wenn es die wichtigsten Funktionen (DOM-Traversierung) nicht erforderlich.
@Imad denn JQuery ist eine Javascript-Bibliothek, und es ist wirklich ärgerlich, wenn Leute entscheiden, dass Sie zu sein, mit einem komplett nicht-obligatorische Sprache, die auch nicht wirklich hinzufügen nichts neues zur Sprache.
Die Tatsache, dass jemand noch Zweifel an einer Entscheidung nicht JQuery verwenden, oder eine Frage angeben, dass Sie nicht wollen, verwenden Sie diese Bibliothek ist frustrierend.
youmightnotneedjquery.com eine Menge von reinem js-Beispiele inkl. ajax für ie8+ ie9+ und ie10+
InformationsquelleAutor der Frage discky | 2011-12-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit "vanilla" JavaScript:
Mit jQuery:
InformationsquelleAutor der Antwort dov.amir
Mit dem folgenden Codefragment können Sie ähnliche Dinge tun, ziemlich leicht, so wie hier:
Hier ist das snippet:
InformationsquelleAutor der Antwort Petah
Können Sie folgende Funktion verwenden:
Können Sie versuchen, ähnliche Lösungen online auf diesen Link:
InformationsquelleAutor der Antwort AbdelHady
Ich weiß, das ist eine ziemlich alte Frage, aber es ist jetzt ein schöner verfügbare API, die nativ in neuere Browser. Die
fetch()
Methode ermöglichen es Ihnen, um web-Anfragen.Zum Beispiel verlangen einige json von
/get-data
:Sehen hier für mehr details.
InformationsquelleAutor der Antwort Will Munn
http://ajaxpatterns.org/XMLHttpRequest_Call
InformationsquelleAutor der Antwort Rafay
Wie wäre es mit dieser version in plain ES6/ES2015?
Gibt die Funktion einen Versprechen. Hier ist ein Beispiel zur Verwendung der Funktion und der Handhabung der Versprechen es gibt:
Wenn Sie brauchen, um zu laden, eine json-Datei, die Sie verwenden können,
JSON.parse()
zum konvertieren der geladenen Daten in ein JS-Objekt.Können Sie auch integrieren
req.responseType='json'
in der Funktion, aber leider gibt es keine IE-Unterstützung für Sie, so würde ich stick mitJSON.parse()
.InformationsquelleAutor der Antwort Rotareti
Erhalten Sie das richtige Objekt je nach browser mit
Mit dem richtigen Objekt, einem BEKOMMEN könnte abstrahiert werden kann, zu:
Und ein POST an:
InformationsquelleAutor der Antwort brunops
War ich auf der Suche nach Weg, zu enthalten verspricht mit ajax und ausschließen jQuery. Es gibt einen Artikel auf HTML5 Rocks, dass die Gespräche über ES6 promises (könnte polyfill mit einem Versprechen-Bibliothek wie Q), verwenden Sie das code-snippet, dass ich kopiert aus dem Artikel.
Hinweis: ich schrieb auch einen Artikel über dieses.
InformationsquelleAutor der Antwort Aligned
Verwenden XMLHttpRequest.
Einfachen GET-request
Einfache POST-Anfrage
Können wir angeben, dass die Anforderung asynchron(true), wird der Standardwert oder synchrone(false) mit einem optionalen Dritten argument.
Können wir Header vor dem Aufruf
httpRequest.send()
Können wir behandeln die Reaktion durch Einstellung
httpRequest.onreadystatechange
auf eine Funktion vor dem AufrufhttpRequest.send()
InformationsquelleAutor der Antwort HarlemSquirrel
Eine kleine Kombination aus ein paar von den Beispielen, und hat dieses einfache Stück:
ODER wenn Ihre Parameter-Objekt(s) - geringfügige zusätzliche code-Anpassung:
Beide sollten vollständig browser + version kompatibel.
InformationsquelleAutor der Antwort tfont
Wenn Sie nicht wollen, zu zählen JQuery, ich würde versuchen, einige leichte AJAX-Bibliotheken.
Mein Favorit ist reqwest. Es ist nur 3,4 kb und sehr gut gebaut aus: https://github.com/ded/Reqwest
Hier ist ein Beispiel für eine GET-Anforderung mit reqwest:
Nun, wenn Sie wollen, sogar noch etwas leichter ist, würde ich versuchen microAjax bei lediglich 0,4 kb: https://code.google.com/p/microajax/
Dies ist der gesamte code, der direkt hier:
Sehen Sie hier ein Beispiel nennen:
InformationsquelleAutor der Antwort Ryan
Alt, aber ich werde versuchen, vielleicht wird jemand finden, der diese info nützlich.
Dies ist die minimale Menge an code, den Sie tun müssen, um eine
GET
Anfrage und HolenJSON
formatierte Daten. Dies gilt nur für moderne Browser wie die aktuellen Versionen von Chrome, FF, Safari, Oper und Microsoft Rand.Schauen Sie sich auch neue Fetch API das ist ein Versprechen-basierten Ersatz für XMLHttpRequest-API.
InformationsquelleAutor der Antwort Ogalb
Kann dies helfen:
InformationsquelleAutor der Antwort Ashish Kumar
Vom youMightNotNeedJquery.com +
JSON.stringify
InformationsquelleAutor der Antwort Mikel
InformationsquelleAutor der Antwort Vosobe Kapsimanis
Ich hoffe, es hilft
Step 1.
Speichern die Referenz auf das XMLHttpRequest-ObjektStep 2.
Abrufen, das XMLHttpRequest-ObjektStep 3.
Asynchrone HTTP-Anforderung mit dem XMLHttpRequest-ObjektStep 4.
Automatisch ausgeführt, wenn eine Nachricht vom server empfangen wirdInformationsquelleAutor der Antwort Prateek Joshi
HTML :
PHP:
InformationsquelleAutor der Antwort 99freebies.blogspot.com
mein ajax-call
für abort Vorherige Anfragen
InformationsquelleAutor der Antwort karthikeyan ganesan
Hier ein JSFiffle ohne JQuery
http://jsfiddle.net/rimian/jurwre07/
InformationsquelleAutor der Antwort Rimian
in plain JavaScript im browser:
Oder wenn Sie verwenden möchten Browserify zu bündeln, um Ihre Module zu verwenden node.js. Sie können superagent:
InformationsquelleAutor der Antwort steven iseki
@Petach Antwort von oben, wie eine riesige Hilfe. Ich habe geschrieben, meine eigene AJAX-Modul, die hier genannt AJ kurz: https://github.com/NightfallAlicorn/AJ Nicht alles getestet, aber es funktioniert bei mir mit get und post für JSON. Sie sind frei zu kopieren und die Nutzung der Quelle, wie Sie es wünschen. Ich hatte nicht gesehen, eine deutliche akzeptierte Antwort, aber ich vermute, das ist okay, zu veröffentlichen.
InformationsquelleAutor der Antwort Nova