2016-08-25 5 views
0

GETリクエストをサーバ(SAP ABAPシステム)に送信することになっている小さな概念実証ウェブアプリケーションを開発しています。サーバーはODATA REST Servicesを提供します。サービスのURIをブラウザのアドレスバーに貼り付けるだけで、目的のコンテンツがすぐに表示されます。私は(AJAXのためのjQueryを使用して)Webアプリケーションを経由して、要求をしようとする場合でも、CORS関連の問題が発生します。CORS HTTPブラウザからのリクエストとローカルにホストされたWebアプリケーションの比較

私のコードと、さらに問題私はHTTPリクエストを持っていますが、この postで見つけることができ

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:XXXXX' is therefore not allowed access. The response had HTTP status code 401. 
。 ブラウザ(またはフィドラー)からのリクエストが問題なく動作するように見える理由は分かりませんが、アプリケーション(ローカルにホストされているbtw)からリクエストを送信するとすぐにCORSの問題が発生します。そして、私はサーバーサイドのコードにアクセスすることができないので、 "Access-Control-Allow-Origin"セクションを編集する可能性はありません。

+0

ここで質問されているのと同じ質問が、あなたの質問と似ているかもしれません。 http://stackoverflow.com/questions/18642828/origin-http-localhost3000-is-not-allowed-by-access-control-allow-origin –

+0

ええ、しかし、人々はこの問題を解決するために、 Control-Allow-Origin:* "を応答ヘッダーに追加します。私が言ったように、私はサーバー側のコードにアクセスすることはできません。 – doktormatte

+0

それから、クロスドメイン要求を受け入れるためにサーバー側でクロスオリジン要求を許可する必要があります。 –

答えて

0

あなたのウェブページを提供するサーバーにアクセスできますか?もしそうなら、私は自分のサーバー経由でリモートサーバーに要求を中継します。

あなたのページは、あなたのサーバにリモートサーバに尋ねることを要求します。

このようにしてCORSは発生しません。

0

サーバーサイドコードにアクセスできない場合や、常にGETリクエストを行うことが確実な場合は、JSONPを使用できます。しかし、CORSを解決するには、レスポンスヘッダが最適な解決策です。

+0

私はすでにJSONPを使って要求。このアプローチに関連する問題については、この記事で説明しています。http://stackoverflow.com/questions/39099459/uncaught-syntaxerror-unexpected-token-after-successful-http-request/ – doktormatte

0

CORS(Cross-Origin Resource Sharing)は、Webページ上の多くのリソース(リソースなどの元のドメイン外の別のドメインから要求されるフォント、JavaScriptなど)を許可するメカニズムです。

ブラウザから直接URLを入力すると、CORSは有効になりません。しかし、あなたのブラウザからAJAXリクエストを行うと、それもブロックされます。

ブラウザからリソースに依頼したい場合は、Chromeの場合はAllow-Control-Allow-Origin: *、Firefoxの場合はどこにでも拡張が必要です。

関連する問題