Aufruf der externen API mit Javascript

8

Ich muss eine POST-Anfrage von meiner Webseite an einen externen Server mit Javascript stellen. Der Körper und die Antwort sind beide json. Ich kann nicht herausfinden, wie ich diesen Anruf machen soll oder welche Werkzeuge ich benutzen soll. Wie mache ich diesen Anruf?

Das habe ich bisher mit jQuery und ajax gemacht:

%Vor%

Es werden Warnungen ausgegeben, die nur "Status:" und "Fehler:"

anzeigen

Die Konsole sagt, dass "XMLHttpRequest Ссылка nicht geladen werden kann. Nein" Access-Control-Allow- Origin 'Header ist in der angeforderten Ressource vorhanden. Origin' Ссылка 'ist daher nicht zulässig. Die Antwort hatte den HTTP-Statuscode 405. "

    
anton2g 23.10.2015, 19:13
quelle

5 Antworten

8

Sind Sie der Besitzer des Ziels des Anrufs? Wenn ja, implementieren Sie die CORS-Header serverseitig.

Wenn nein, können Sie mit JSONP umgehen (es umgeht CORS), oder Sie können sogar einen serverseitigen Proxy implementieren, den Sie besitzen, um externe Anfragen zu routen (und natürlich dort CORS implementieren).

Lesen Sie den Artikel über CORS in MDN, wenn Sie weitere Informationen wünschen: HTTP-Zugriffskontrolle (CORS ) auf MDN

    
Mathieu Amiot 02.11.2015, 14:18
quelle
2

Sie können JQUERY und AJAX verwenden. Sie können / senden Informationen zu / von Ihrer API entweder per Post oder Get-Methode.

Es wäre so etwas:

%Vor%

Ajax: Ссылка

    
Arthur Medeiros 23.10.2015 19:18
quelle
2

Sie verstoßen hier gegen die so genannte Herkunftspolitik. Die meisten Browser erlauben einem Skript nicht den Zugriff auf URLs, die nicht denselben Hostnamen und Port haben wie die Seite, auf der sich das Skript befindet. Dies ist eine sehr strenge Sicherheitsrichtlinie und war oft sogar für Testzwecke sehr schwer zu überwinden.

Traditionell besteht der einfachste Weg darin, Ihre eigene Website als Proxy zu verwenden und die Anfrage über diesen an den externen Server weiterzuleiten. Aber wenn Sie nicht genug Kontrolle auf Ihrer eigenen Website haben, um eine solche Lösung zu implementieren, waren die Dinge komplizierter. Wenn Sie im Internet nach "self-source-policy" suchen, finden Sie eine Menge Diskussionen über das Thema und andere Ideen, um es zu lösen.

Mein erster Vorschlag wäre, die "Access-Control-Allow-Origin" zu überprüfen, die in Ihrer Fehlermeldung erwähnt wird, obwohl ich mich selbst nicht damit auskenne. Es steht in Zusammenhang mit einem neuen Schema namens CORS, das vor kurzem (2014) zu den W3C-Empfehlungen hinzugefügt wurde und in den neuesten Versionen vieler Browser eine breite Unterstützung zu haben scheint. Vielleicht bekommen wir Entwickler endlich einige Werkzeuge, um mit diesem irritierenden Thema zu arbeiten.

    
Fluster 27.10.2015 18:01
quelle
1

Wenn Sie einen anderen Domain-Ajax-Aufruf verwenden möchten, müssen Sie den JSONP-Datentyp verwenden, mit dem der Browser domänenübergreifende Anfragen stellen kann.

Hier finden Sie weitere Dokumente für JSONP: Ссылка

%Vor%     
Mitul 30.10.2015 09:28
quelle
1

Wenn Sie jquery verwenden, verwenden Sie .post oder .ajax, um

zu senden

$.post(url, data, callbackSuccess, callbackError);

mehr über diese Methoden hier Ссылка

Beispiel:

%Vor%     
Darlan Mendonça 23.10.2015 19:24
quelle

Tags und Links