ホームページ >バックエンド開発 >Python チュートリアル >Python のボトル フレームワークでクロスドメイン リクエスト エラーの問題を処理する方法の詳細なグラフィックとテキストの説明
この記事では主にpythonのボトルフレームワークにおけるクロスドメインリクエストのエラーレポートの問題への対処方法を紹介していますので、困っている方は参考にしてください
Pythonのボトルフレームワークで開発する際、フロントエンドでajaxを使用する場合。クロスドメイン アクセスの場合、js コードは常に成功に失敗し、エラーになり、返される status は 200 です。ブラウザで F12 を押して URL に直接アクセスすると、次のエラー メッセージが表示されます。
XMLHttpRequest http://192.168.0.118:8081/get_mobile_number/?id=1 . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is not allowed access.
検索エンジンでエラーをクエリすると、ほとんどのことがわかります。見つかったすべての答えは、メインファイルのコードに次のコードを追加するだけで済みます
@hook('after_request') def enable_cors(): response.headers['Access-Control-Allow-Origin'] = '*'
しかし、実際には、解決策を追加した後です。見つかった解決策によると、引き続きエラーが発生します。以下に示すように、ブラウザーによって出力された http ヘッダーに、先ほど追加した Access-Control-Allow-Origin:* が表示されませんでした。 、表示するにはボトルのソースコードを入力してください
私はこの問題を python2 と python3 でテストしました この問題はボトルのフレームワークに存在し、次のように変更しました:
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
繰り返しますが、ajax コードが正常であることがわかります
以上がPython のボトル フレームワークでクロスドメイン リクエスト エラーの問題を処理する方法の詳細なグラフィックとテキストの説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。