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:"
anzeigenDie 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. "
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
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: Ссылка
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.
Wenn Sie jquery verwenden, verwenden Sie .post oder .ajax, um
zu senden $.post(url, data, callbackSuccess, callbackError);
mehr über diese Methoden hier Ссылка
Beispiel:
%Vor%Tags und Links javascript api post