私はPolymerプロジェクトに静的にサービスを提供する高速サーバーを持っています。私は、必要なREST APIクエリを持っていますが、クライアントからそれを作成すると、CORSによってブロックされます。だから私はそれを回避しようとするためにexpress-http-proxyを使った。私は自分の要求をそれに送り、REST APIエンドポイントを持つサーバーにリダイレクトします。これは、node server.js
を実行している私のサーバーコードの全体です:express-http-proxyはCORSポリシーでまだブロックされています
var express = require('express');
var proxy = require('express-http-proxy');
var server = express();
server.use('/', express.static(__dirname + '/'));
server.listen(8080);
server.use('/rest/api/2/search', proxy('restserver:8877'));
console.log("Server listening on localhost:8080");
私はrestserverアクセス:それは「デフォルト」の検索として、JSONの束を返し、ブラウザに8877 /休憩/ API/2 /検索を。クライアント側では
、私はこの要求作る鉄AJAXあります
<iron-ajax
id="getBugs"
url="/rest/api/2/search"
params=''
on-response="handleResponse"
debounce-duration="300">
</iron-ajax>
、スクリプトのセクションでは、私がリクエストを送信するためにready
機能でthis.$.getBugs.generateRequest()
を使用しています。だから私はCORSによってブロックされないことを期待して、これをロードします。それはサーバーによってプロキシされているからです。それは私にそれらのURLを与えて、なぜ私はそれらを参照することはありませんので、
XMLHttpRequest cannot load http://restserver:8877/secure/MyJiraHome.jspa. Redirect from 'http://restserver:8877/secure/MyJiraHome.jspa' to 'http://restserver:8877/secure/Dashboard.jspa' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
私は、理解していない、そしてそれは、サーバからではないだろうので、それは、原因CORSにブロックしている理由:その代わり、クロームデベロッパーツールでは、この私に与えますクライアント、それはプロキシの全体のポイントです。