Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Grafik- und Texterklärung zum Umgang mit domänenübergreifenden Anforderungsfehlern im Bottle-Framework von Python

Detaillierte Grafik- und Texterklärung zum Umgang mit domänenübergreifenden Anforderungsfehlern im Bottle-Framework von Python

高洛峰
高洛峰Original
2017-03-20 09:14:571624Durchsuche

In diesem Artikel wird hauptsächlich der Umgang mit dem Problem der domänenübergreifenden Anforderungsfehlermeldung im BottleFramework von Python beschrieben 🎜>mit Python Wenn das Front-End bei der Entwicklung des Bottle-Frameworks Ajax für den domänenübergreifenden Zugriff verwendet, schlägt der

js

-Code immer fehl, den Erfolg einzugeben, sondern gibt einen Fehler und den zurückgegebenen -Status ist 200. Es ist normal, direkt im Browser auf die URL zuzugreifen. Nach dem Drücken von F12 im Browser wird die folgende Fehlermeldung angezeigt: XML

HttpRequest kann http://192.168.0.118 nicht laden: 8081/get_mobile_number/? id=1. Auf der angeforderten

Ressource ist kein „Access-Control-Allow-Origin“-Header vorhanden. Wenn Sie Fehler über Suchmaschinen abfragen, werden Sie feststellen, dass es sich bei fast allen Antworten, die Sie finden, um domänenübergreifende Probleme handelt. Sie müssen nur Folgendes zum Code der Hauptdatei hinzufügen. Viele Lösungen auf ausländischen Websites sagen Dies Tatsächlich ist nach dem Hinzufügen der Lösung immer noch ein Fehler aufgetreten. Beim Betrachten der HTTP-Header-Ausgabe des Browsers haben wir den Access-Control-Allow-Origin:* nicht gesehen gerade hinzugefügt, wie unten gezeigt:

@hook('after_request')
def enable_cors():
 response.headers['Access-Control-Allow-Origin'] = '*'

Geben Sie über DEBUG den Quellcode der Flasche ein, um

anzuzeigen, den ich getestet habe Dieses Problem im Bottle-Framework, das Python2 und Python3 entspricht. Dieses Problem besteht. Wir haben es geändert in:


Sie können sehen dass der Ajax-Code normal ist, wenn Sie den Code erneut ausführen
class HTTPResponse(Response, BottleException):
  def init(self, body='', status=None, headers=None, **more_headers):
    super(HTTPResponse, self).init(body, status, headers, **more_headers)
  def apply(self, response):
    response._status_code = self._status_code
    response._status_line = self._status_line
    if self._headers:
      if response._headers:
        response._headers.update(self._headers)
      else:
        response._headers = self._headers
    response._cookies = self._cookies
    response.body = self.body


Das obige ist der detaillierte Inhalt vonDetaillierte Grafik- und Texterklärung zum Umgang mit domänenübergreifenden Anforderungsfehlern im Bottle-Framework von Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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