Inhaltsverzeichnis
Verwendung von fetch
Probleme und Lösungen abrufen
-Methode ein
兼容解决方案
哪些情况可以放弃使用fetch
Heim Web-Frontend js-Tutorial Was sind $.ajax, axios und fetch? Ausführliche Erklärung zur Verwendung von fetch

Was sind $.ajax, axios und fetch? Ausführliche Erklärung zur Verwendung von fetch

Oct 17, 2018 pm 03:04 PM
ajax axios fetch javascript

In diesem Artikel erfahren Sie, was $.ajax, axios und fetch jeweils sind, sodass Sie mehr über die Verwendung von fetch erfahren können. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

  • Ajax Was ist das?

Antwort: Ajax ist eine Technologie, die asynchrone Datenübertragung (HTTP-Anfrage) zwischen dem Browser und dem Server nutzen kann. Damit kann eine Seite eine kleine Datenmenge anfordern, ohne die gesamte Seite aktualisieren zu müssen. Um einen Teil des Inhalts auf einer herkömmlichen Seite (ohne Verwendung von Ajax) zu aktualisieren, muss die gesamte Webseite neu geladen werden.

  • Ajax Basierend auf was?

Antwort: Es basiert auf XMLHttpRequest (XHR). Dabei handelt es sich um eine relativ grobe API, die nicht dem Designprinzip der Interessenstrennung (Separation of Concerns) entspricht und nicht so benutzerfreundlich zu konfigurieren und zu verwenden ist. Was ist der Hintergrund von

  • $.ajax?

Antwort: Aus den oben genannten Gründen wird auf verschiedene Ajax-Bibliotheken verwiesen, die bekannteste ist jedoch $.ajax() in der jQuery-API. $.ajax() Einer seiner Vorteile ist der asynchrone Betrieb, aber der asynchrone Betrieb von jQuery ist ein ereignisbasiertes asynchrones Modell, das nicht so benutzerfreundlich ist wie versprochen.

  • fetch Hintergrund generiert?

Antwort: Basierend auf den verschiedenen oben genannten Faktoren entstand die Fetch-API. Aber es ist einfach zu verwenden und weist einige Probleme auf (dieses Problem wird weiter unten ausführlich besprochen und die entsprechenden Lösungen werden erläutert), gepaart mit Kompatibilitätsproblemen (IE unterstützt es überhaupt nicht), sodass viele Entwickler Axios verwenden . Drei-Parteien-Bibliothek.

  • Bibliothek, die Promise (Axios) unterstützt?

Antwort: axios Diese Bibliothek ist mittlerweile eine relativ verbreitete Branchenlösung. axios Ein Grund für ihre Beliebtheit sind Versprechen, und ein anderer Grund ist die Popularität der Bibliothek (vue.js, Angular.js, React.js usw.), während die traditionelle jQuery eine Bibliothek ist, die auf DOM-Operationen basiert. Es weist jedoch auch Mängel auf. Das heißt, bevor wir es verwenden, müssen wir sicherstellen, dass die Bibliothek eingeführt wurde.

Eigentlich verwende ich persönlich lieber fetch. Wenn während der Entwicklung Kompatibilitätsprobleme auftreten, ist nur ein isomorpher Abruf erforderlich, ohne dass eine zusätzliche Bibliothek eingeführt werden muss. Konzentrieren wir uns auf das Abrufen.

Verwendung von fetch

fetch(url, options)
    .then(response => console.log(responese))
    .catch(err => console.log(err))
Nach dem Login kopieren

URL: Zugriffsadresse
Optionen: Allgemeine Konfigurationsparameter
Antwort: Rückgabeobjekt anfordern

Parameterkonfiguration anfordernoptions Details können gefunden werden Siehe MDN-Abruf

Probleme und Lösungen abrufen

  1. Sie benötigen zwei Schritte, um die Daten abzurufen

fetch('https://api.github.com/users/lvzhenbang/repos')
    .then(res => {
        console.log(res)
        return res.text()
    }).then(data => {
        console.log(data)
    })
Nach dem Login kopieren

Los Durch das Obige können Sie im Code feststellen, dass das durch direktes Drucken zurückgegebene Response-Objekt überhaupt keine Daten enthält. Um die erforderlichen Daten zu erhalten, müssen Sie eine Zwischenmethode response.text() durchlaufen (Abruf bietet 5 Methoden).

Andererseits ist axios viel bequemer zu verwenden. Das zurückgegebene Response-Objekt enthält Daten im data-Attribut. Der Referenzcode lautet wie folgt:

axios.get('https://api.github.com/users/lvzhenbang/repos')
    .then(res => console.log(res));
Nach dem Login kopieren

Natürlich ist das kein großes Problem, aber die Verwendung ist etwas mühsam.

  1. Die Abrufanforderung ist standardmäßig auf „Nein“ eingestellt cookie

Um dieses Problem zu lösen, müssen Sie options >{credentials: 'include'}

    Nicht alle Anforderungsfehler werden
  1. reject

  2. Das heißt, die
-Methode kann nicht alle Fehler abfangen, wenn ein Fehler auftritt , Sie können einen Statuscode (z. B. 404, 500 usw.) verwenden. Der von

zurückgegebene catch hat keine Ablehnung. fetch ist nur gültig, wenn das Netzwerk ausfällt oder die Anfrage ist blockiert. PromisecatchUm dieses Problem zu lösen, können wir feststellen, ob das

im

-Objekt wahr ist. Wenn nicht, verwenden Sie Response, um manuell ein ok hinzuzufügen. Der Referenzcode lautet wie folgt: Promise

fetch('https://api.github.com/usrs/lvzhenbang/repos')
    .then(res => {
        if (res.ok) {
            return res.text()
        } else {
            return Promise.reject('请求失败')
        }
    }).then(data => {
        console.log(data)
    }).catch(err => {
        console.log(err)
    })
Nach dem Login kopieren
rejectWenn Sie nicht manuell hinzufügen, wird

ausgedruckt, was wir natürlich nicht wollen Betrachten Sie dieses Problem. Der Code lautet wie folgt: reject

axios.get('https://api.github.com/usrs/lvzhenbang/repos')
    .then(res => console.log(res))
    .catch(err => console.log(err));
Nach dem Login kopieren
undefinedOptimierung des AbrufsaxiosDa die

-Methode ein

zurückgibt, können Sie

zusätzlich aufrufen Um sicherzustellen, dass alle Fehler ein einheitliches Format zurückgeben (beide geben ein res.text() zurück), kann der obige Code wie folgt optimiert werden: promise

fetch('https://api.github.com/usrs/lvzhenbang/repos')
    .then(res => {
        return res.text()
            .then(data => {
                if (res.ok) {
                    return data
                } elese {
                    return Promise.reject(json)
                }
            })
    }).then(data => {
        console.log(data)
    }).catch(err => {
        console.log(err)
    })
Nach dem Login kopieren
.thenSchüler, die Express/Koa gespielt haben oder ein gewisses Verständnis davon haben Backend, wissen Sie, dass der Server in einigen Fällen auch einige prompte Informationen zurückgibt, wie soll ich also damit umgehen? Zu den häufigen Fehlermeldungen gehören ein Statuscode (Status) und eine Eingabeaufforderung (Msg). Der Code wird wie folgt geändert: PromiseServer:

res.status(404).send({
    err: 'not found'
})
Nach dem Login kopieren
Client:

fetch('https://api.github.com/usrs/lvzhenbang/repos')
    .then(handleResponse).then(data => {
        console.log(data)
    }).catch(err => {
        console.log(err)
    })

function handleResponse (res) { 
    return Promise.reject(Object.assign({}, res.text(), {
        status: res.status,
        msg: res.statusText
    }))
}
Nach dem Login kopieren

兼容解决方案

以上问题解决并优化fetch的使用后,发现fetch还是一个不错的选择。针对不同使用情况可以作如下处理:

首先,要引入 es5-shim 解决fetch这个新特性的同构;

其次,要引入 es6-promise 解决promise的兼容问题;

然后,引入 fetch-ie8 解决fech的同构问题;

最后,引入 fetch-jsonp 解决跨域问题。

当然,你也不需要针对性的解决这些问题,GitHub团队提供了一个polyfill解决方案,你不需要一步步的是实现。只需要两步:

  1. 安装 fetch package

    npm install whatwg-fetch --save

  2. 在使用的模块引入 fetch

import 'whatwg-fetch'

window.fetch(url, options)
Nach dem Login kopieren

其他的使用和 fetch 则这个原生的API雷同。

哪些情况可以放弃使用fetch

  1. 获取Promsie的状态,如:isRejected, isResolved

  2. 如果使用习惯了jquery的progress方法的,或者使用deffered的一些方法

具体 fetch 实现了哪些与jquery类似的方法可参考whatwg-ftch 或者 fetch-issue


Das obige ist der detaillierte Inhalt vonWas sind $.ajax, axios und fetch? Ausführliche Erklärung zur Verwendung von fetch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So beheben Sie den 403-Fehler, der bei einer jQuery-AJAX-Anfrage auftritt So beheben Sie den 403-Fehler, der bei einer jQuery-AJAX-Anfrage auftritt Feb 20, 2024 am 10:07 AM

Titel: Methoden und Codebeispiele zur Behebung von 403-Fehlern in jQuery-AJAX-Anfragen. Der 403-Fehler bezieht sich auf eine Anfrage, dass der Server den Zugriff auf eine Ressource verbietet. Dieser Fehler tritt normalerweise auf, weil der Anfrage die Berechtigungen fehlen oder sie vom Server abgelehnt wird. Wenn Sie jQueryAJAX-Anfragen stellen, stoßen Sie manchmal auf diese Situation. In diesem Artikel wird erläutert, wie dieses Problem gelöst werden kann, und es werden Codebeispiele bereitgestellt. Lösung: Berechtigungen prüfen: Stellen Sie zunächst sicher, dass die angeforderte URL-Adresse korrekt ist und stellen Sie sicher, dass Sie über ausreichende Berechtigungen für den Zugriff auf die Ressource verfügen.

So beheben Sie den Fehler 403 der jQuery AJAX-Anfrage So beheben Sie den Fehler 403 der jQuery AJAX-Anfrage Feb 19, 2024 pm 05:55 PM

jQuery ist eine beliebte JavaScript-Bibliothek zur Vereinfachung der clientseitigen Entwicklung. AJAX ist eine Technologie, die asynchrone Anfragen sendet und mit dem Server interagiert, ohne die gesamte Webseite neu zu laden. Wenn Sie jedoch jQuery zum Senden von AJAX-Anfragen verwenden, treten manchmal 403-Fehler auf. Bei 403-Fehlern handelt es sich in der Regel um vom Server verweigerte Zugriffsfehler, möglicherweise aufgrund von Sicherheitsrichtlinien oder Berechtigungsproblemen. In diesem Artikel besprechen wir, wie Sie bei einer jQueryAJAX-Anfrage den Fehler 403 beheben können

Wie erhalte ich Variablen aus der PHP-Methode mit Ajax? Wie erhalte ich Variablen aus der PHP-Methode mit Ajax? Mar 09, 2024 pm 05:36 PM

Die Verwendung von Ajax zum Abrufen von Variablen aus PHP-Methoden ist ein häufiges Szenario in der Webentwicklung. Durch Ajax kann die Seite dynamisch abgerufen werden, ohne dass die Daten aktualisiert werden müssen. In diesem Artikel stellen wir vor, wie man Ajax verwendet, um Variablen aus PHP-Methoden abzurufen, und stellen spezifische Codebeispiele bereit. Zuerst müssen wir eine PHP-Datei schreiben, um die Ajax-Anfrage zu verarbeiten und die erforderlichen Variablen zurückzugeben. Hier ist ein Beispielcode für eine einfache PHP-Datei getData.php:

Wie kann das Problem des jQuery AJAX-Fehlers 403 gelöst werden? Wie kann das Problem des jQuery AJAX-Fehlers 403 gelöst werden? Feb 23, 2024 pm 04:27 PM

Wie kann das Problem des jQueryAJAX-Fehlers 403 gelöst werden? Bei der Entwicklung von Webanwendungen wird jQuery häufig zum Senden asynchroner Anfragen verwendet. Allerdings kann bei der Verwendung von jQueryAJAX manchmal der Fehlercode 403 auftreten, der darauf hinweist, dass der Zugriff vom Server verboten ist. Dies wird normalerweise durch serverseitige Sicherheitseinstellungen verursacht, es gibt jedoch Möglichkeiten, das Problem zu beheben. In diesem Artikel wird erläutert, wie Sie das Problem des jQueryAJAX-Fehlers 403 lösen können, und es werden spezifische Codebeispiele bereitgestellt. 1. machen

PHP und Ajax: Erstellen einer Autovervollständigungs-Vorschlags-Engine PHP und Ajax: Erstellen einer Autovervollständigungs-Vorschlags-Engine Jun 02, 2024 pm 08:39 PM

Erstellen Sie eine Engine für Autovervollständigungsvorschläge mit PHP und Ajax: Serverseitiges Skript: Verarbeitet Ajax-Anfragen und gibt Vorschläge zurück (autocomplete.php). Client-Skript: Ajax-Anfrage senden und Vorschläge anzeigen (autocomplete.js). Praktischer Fall: Fügen Sie ein Skript in die HTML-Seite ein und geben Sie die Kennung des Sucheingabeelements an.

PHP vs. Ajax: Lösungen zum Erstellen dynamisch geladener Inhalte PHP vs. Ajax: Lösungen zum Erstellen dynamisch geladener Inhalte Jun 06, 2024 pm 01:12 PM

Ajax (Asynchronous JavaScript and XML) ermöglicht das Hinzufügen dynamischer Inhalte, ohne die Seite neu laden zu müssen. Mit PHP und Ajax können Sie eine Produktliste dynamisch laden: HTML erstellt eine Seite mit einem Containerelement und die Ajax-Anfrage fügt die Daten nach dem Laden zum Element hinzu. JavaScript verwendet Ajax, um über XMLHttpRequest eine Anfrage an den Server zu senden, um Produktdaten im JSON-Format vom Server abzurufen. PHP nutzt MySQL, um Produktdaten aus der Datenbank abzufragen und in das JSON-Format zu kodieren. JavaScript analysiert die JSON-Daten und zeigt sie im Seitencontainer an. Durch Klicken auf die Schaltfläche wird eine Ajax-Anfrage zum Laden der Produktliste ausgelöst.

PHP und Ajax: Möglichkeiten zur Verbesserung der Ajax-Sicherheit PHP und Ajax: Möglichkeiten zur Verbesserung der Ajax-Sicherheit Jun 01, 2024 am 09:34 AM

Um die Ajax-Sicherheit zu verbessern, gibt es mehrere Methoden: CSRF-Schutz: Generieren Sie ein Token und senden Sie es an den Client. Fügen Sie es der Serverseite in der Anforderung zur Überprüfung hinzu. XSS-Schutz: Verwenden Sie htmlspecialchars(), um Eingaben zu filtern und das Einschleusen böswilliger Skripte zu verhindern. Content-Security-Policy-Header: Beschränken Sie das Laden schädlicher Ressourcen und geben Sie die Quellen an, aus denen Skripte und Stylesheets geladen werden dürfen. Validieren Sie serverseitige Eingaben: Validieren Sie von Ajax-Anfragen empfangene Eingaben, um zu verhindern, dass Angreifer Eingabeschwachstellen ausnutzen. Verwenden Sie sichere Ajax-Bibliotheken: Profitieren Sie von automatischen CSRF-Schutzmodulen, die von Bibliotheken wie jQuery bereitgestellt werden.

Asynchroner Datenaustausch mithilfe von Ajax-Funktionen Asynchroner Datenaustausch mithilfe von Ajax-Funktionen Jan 26, 2024 am 09:41 AM

So verwenden Sie Ajax-Funktionen, um eine asynchrone Dateninteraktion zu erreichen. Mit der Entwicklung der Internet- und Webtechnologie ist die Dateninteraktion zwischen dem Front-End und dem Back-End sehr wichtig geworden. Herkömmliche Dateninteraktionsmethoden wie Seitenaktualisierung und Formularübermittlung können die Benutzeranforderungen nicht mehr erfüllen. Ajax (Asynchronous JavaScript and XML) ist zu einem wichtigen Werkzeug für die asynchrone Dateninteraktion geworden. Ajax ermöglicht dem Web die Verwendung von JavaScript und dem XMLHttpRequest-Objekt

See all articles