CORS - Verwenden von AJAX zum Posten auf einem Python (webapp2) -Webdienst

8

Das wird lang:

Ok, ich entwickle ein Google Kalender Gadget, das Anfragen an eine Python webapp2 REST API sendet, die auf der Google App Engine gehostet wird.

Das Problem kommt, wenn ich versuche, etwas, das mir wegen CORS nicht erlaubt ist, zu POSTIEREN. In den DevTools von Chromes heißt es:

%Vor%

Mir ist bewusst, dass dies an CORS liegt. Hier:

Ajax - 'Origin localhost ist nicht erlaubt von Access-Control-Allow-Origin '

Es heißt, dass ich

hinzufügen muss %Vor%

Zu den Headern, aber dann bin ich noch neu bei Ajax und ich frage mich, ob es so gemacht wird:

%Vor%

Wenn Sie diese Header hinzufügen, ist die Ausgabe anders (was mich fragt, ob der Ursprung erlaubt ist, obwohl ich es nicht genau weiß):

%Vor%

Ich habe das sogar gefunden:

Ссылка

Was mich dazu bringt, GET-Anfragen zu machen, aber ich würde gerne lernen, wie ich sie ohne das machen kann.

Auch auf meinem Webserver habe ich folgendes:

%Vor%

Ich weiß nicht, ob ich etwas mehr zum Webserver hinzufügen muss, noch habe ich Informationen gefunden, die sagen, dass ich es muss. Außerdem denke ich, dass ich nahe an der CORS-Anfrage bin, aber ich kann das Beispiel nicht finden, das alles erklärt.

Bitte helfen Sie.

    
arqueum 12.09.2013, 09:17
quelle

3 Antworten

19

Ok, ich habe es behoben.

Als Erstes habe ich hier erfahren, dass die Header vom Server gesendet wurden, also war ich falsch Senden dieser Header in der AJAX-Anfrage.

Schließlich, nachdem ich im World Wide Web gesucht habe, habe ich herausgefunden, was ich vermisst habe. Es war etwas dummes. Ich habe die Seite gefunden, auf der alles behoben wurde:

Ссылка

Endlich sieht alles so aus:

%Vor%

Und im webService:

%Vor%     
arqueum 12.09.2013, 13:24
quelle
2
___ qstnhdr ___ CORS - Verwenden von AJAX zum Posten auf einem Python (webapp2) -Webdienst ___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ tag123googleappengine ___ Google App Engine ist eine Cloud-Computing-Technologie zum Hosten von Webanwendungen in von Google verwalteten Rechenzentren. Google App Engine ist ein Platform-as-a-Service-Angebot (PaaS) für Java, Python, Go und PHP in seiner Standardumgebung. Laufzeiten für einige andere Sprachen sowie dockerbasierte benutzerdefinierte Laufzeiten werden in der flexiblen Umgebung unterstützt. ___ answer44879427 ___

Kann einfacher mit Versand Methode

%Vor%     
___ tag123jquery ___ jQuery ist eine beliebte Cross-Browser-JavaScript-Bibliothek, die das DOM-Traversal (Document Object Model), die Ereignisbehandlung, Animationen und AJAX-Interaktionen erleichtert, indem die Diskrepanzen zwischen Browsern minimiert werden. Eine mit jQuery gekennzeichnete Frage sollte mit jQuery in Zusammenhang stehen, daher sollte jquery von dem fraglichen Code verwendet werden, und mindestens eine jquery-nutzungsbezogene Elemente müssen in der Frage enthalten sein. ___ tag123webapp2 ___ webapp2 ist ein leichtgewichtiges Python-Webframework, das mit der Webanwendung von Google App Engine kompatibel ist. ___ tag123cors ___ Das CORS-Protokoll (Cross-Origin Resource Sharing) ermöglicht Web-Servern das Senden der Access-Control-Allow-Origin-Kopfzeile und anderer Antwortheader, um Browsern zu ermöglichen, die Richtlinie für denselben Ursprung zu lockern und XHR / Fetch / XHR / Herkunft zuzulassen. Ajax-Anfragen Das CORS-Protokoll ist in https://fetch.spec.whatwg.org/ definiert ___ qstntxt ___

Das wird lang:

Ok, ich entwickle ein Google Kalender Gadget, das Anfragen an eine Python webapp2 REST API sendet, die auf der Google App Engine gehostet wird.

Das Problem kommt, wenn ich versuche, etwas, das mir wegen CORS nicht erlaubt ist, zu POSTIEREN. In den DevTools von Chromes heißt es:

%Vor%

Mir ist bewusst, dass dies an CORS liegt. Hier:

Ajax - 'Origin localhost ist nicht erlaubt von Access-Control-Allow-Origin '

Es heißt, dass ich

hinzufügen muss %Vor%

Zu den Headern, aber dann bin ich noch neu bei Ajax und ich frage mich, ob es so gemacht wird:

%Vor%

Wenn Sie diese Header hinzufügen, ist die Ausgabe anders (was mich fragt, ob der Ursprung erlaubt ist, obwohl ich es nicht genau weiß):

%Vor%

Ich habe das sogar gefunden:

Ссылка

Was mich dazu bringt, GET-Anfragen zu machen, aber ich würde gerne lernen, wie ich sie ohne das machen kann.

Auch auf meinem Webserver habe ich folgendes:

%Vor%

Ich weiß nicht, ob ich etwas mehr zum Webserver hinzufügen muss, noch habe ich Informationen gefunden, die sagen, dass ich es muss. Außerdem denke ich, dass ich nahe an der CORS-Anfrage bin, aber ich kann das Beispiel nicht finden, das alles erklärt.

Bitte helfen Sie.

    
___ answer18765590 ___

Ok, ich habe es behoben.

Als Erstes habe ich hier erfahren, dass die Header vom Server gesendet wurden, also war ich falsch Senden dieser Header in der AJAX-Anfrage.

Schließlich, nachdem ich im World Wide Web gesucht habe, habe ich herausgefunden, was ich vermisst habe. Es war etwas dummes. Ich habe die Seite gefunden, auf der alles behoben wurde:

Ссылка

Endlich sieht alles so aus:

%Vor%

Und im webService:

%Vor%     
___
Roberto 23.02.2014 03:28
quelle
2

Kann einfacher mit Versand Methode

%Vor%     
nguyên 03.07.2017 06:53
quelle