2

breezejsに関するマイナーな問題またはメジャーな問題があります。現在のセットアップでは、2つのプロジェクトがあります。1つはbreeze-apiをホストするweb-apiプロジェクトで、もう1つはclient-applicationをホストするプロジェクトです。それはAPIを消費することになっています..これは私にAPIとクライアントが実行される2つの異なるポートを与えます..

だから私の質問は...クロスドメインでそよ風を動作させる方法はありますか?..またはそよ風はそれ自身のドメイン内で使用するためだけに構築されていますか?

前もって感謝します!

4

2 に答える 2

3

ドメインを越えても問題ありません。

問題はありますが、Breezeの問題ではありません。あなたは私たち全員を悩ませているブラウザの「同一生成元ポリシー」と格闘しています。

あなたはそれを回避することができます。唯一の問題は、あなたがそれについてどうやって行きたいかということです。そして、その質問は「どのブラウザをサポートするか」から始まります。IE10 +と最新のChromeおよびFFの場合は、CORSを使用する必要があります。古いブラウザとOperaの場合... JSONPの戦いと戦う必要があります。

お知らせ下さい。

ナッジ:どちらが好きだと思いますか?BreezeにはすでにCORSサンプルがあります...ダウンロードで取得するTodoサンプルです。それはまだ文書化されていませんが、あなたを待っています。

于 2013-03-20T03:22:37.663 に答える
0

Wardのソリューションは非常に正しく、より直接的なソリューションを追加しているだけです。

次に、パッケージをインストールします。

Microsoft.AspNet.WebApi.Cors

次に、これをweb.configに追加します

<system.webServer>
<httpProtocol>
<customHeaders>
  <add name="Access-Control-Allow-Origin" value="*"/>
  <add name="Access-Control-Allow-Headers" value="Content-Type"/>
  <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS"/>
</customHeaders>
</httpProtocol>
</system.webServer>

「Access-Control-Allow-Origin」を他のサイトに変更する*すべての人が開発に使用できるため、セキュリティ上のリスクがあります

次に、アクセス可能にしたいリソースにこのアルトリブルートを追加します

[EnableCors(origins: "*", headers: "*", methods: "*")]

ここでも原点を変更します。URLの最後にバックスラッシュがないことを覚えておいてください。

于 2015-03-22T07:59:05.680 に答える