January 2017 Endpoints release notesで述べたように、私はX-グーグル・エンドポイントに追加することにより、クロスオリジン・リクエストをブロックから拡張サービスプロキシ(ESP)を停止するために私のopenapi.yamlファイルを更新しようとしました:Google Cloud EndpointsでCORSを許可する方法は?
swagger: "2.0"
info:
description: "Market scan using technical indicators."
title: "Talib Test"
version: "1.0.0"
host: "YOUR-PROJECT-ID.appspot.com"
x-google-endpoints:
- name: "YOUR-PROJECT-ID.appspot.com"
allowCors: "true"
basePath: "/"
consumes:
- "application/json"
produces:
- "application/json"
schemes:
- "http"
...
私は続けるが自分のアプリケーションからhttp呼び出しをしようとしているときにブラウザにエラーが表示されます。
XMLHttpRequest cannot load
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
私はGoogleクラウドログを見ると、私はrequestMethod:"OPTIONS"
とstatus:200
ていることがわかります。エラーは、両方の開発者モードで、私は私の角度アプリケーションをデプロイした後です。 APIはPOSTメソッドなので、リクエストをブロックするのはESPだと思います。また、私はFLASK-CORSを使用して私のpythonアプリケーションでCORSを許可しているので動作するはずです。
私のアプリケーションには、Google App Engine上にある2つのサービスがあります。最初のものはStandard Envrionmentです。私が問題を抱えている第二は柔軟な環境です。私はdispatch.yamlファイルを使用しており、関連する場合はopenapi.yamlファイルを分けています。また、APIはhurl itと郵便局でも機能します。
何か助けが素晴らしいだろう!
ありがとうございます。 CORSを正しく処理していなかったのはバックエンドでした。 [FLASK-CORS](https://github.com/corydolphin/flask-cors)は適切なヘッダーを提供していませんでした。私は[この質問](https://stackoverflow.com/questions/19962699/flask-restful-cross-domainissues-with-angular-put-options-methods)に続き、フラスコafter_requestフックを使って正しいヘッダを作成し始めました。ありがとうございました – Nicholas
openapi.jsonの「allowCors」のどこに「true」を追加する必要がありますか?私は試したが、それは私のために働いていない – caitoo0o