2016-07-27 12 views
0

アプリケーション全体は、Dartの場合はAngular 2で構築されます。HttpRequest.getString(url)を使用した場合のCORSエラー

私は、特別なパラメータや何もなしで、本当に素朴なHttpRequest.getString()コールでサービスしています。サーバー側では

String response = await HttpRequest.getString(url); 

WP-APIランニングとWordpressインストールがあります。

私がこのエラーを取得するためDartが、何とか現在ロードされているホスト名の新しいレスポンスヘッダを作成していること、思わ:

XMLHttpRequest cannot load http://my-wordpress/wp-json/wp/v2/pages .

The 'Access-Control-Allow-Origin' header contains multiple values ' http://localhost:8080 , *', but only one is allowed. Origin ' http://localhost:8080 ' is therefore not allowed access.


私は同じ結果を得ることはありませんPostman、しかし:

enter image description here


Dart itself concatenates duplicate headers into just oneのソースコードを読んだところ、余分なCORSヘッダーに関する情報が見つかりませんでした。

答えて

0

Wordpressの具体的なREST-APIコードをコメントアウトすることで修正できます。 wp-includesというフォルダには、rest-api.phpというファイルがあります。

header('Access-Control-Allow-Origin: ' . esc_url_raw($origin)); 
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE'); 
header('Access-Control-Allow-Credentials: true'); 

これは、APIへのアクセス要求のホストを許可しているようだ:ライン376で

は上向きにあなたはこのような何かを参照してください。しかし、すでに*をOriginとして追加しているので、これは失敗します。だから私はちょうどコードがブロックされ、すべてがうまく動作するとコメントしました。

関連する問題