「クロスドメインポスト」としても知られる「別のドメインでの POST リクエスト」の問題に関する「解決策」の多くを読んだことがありますが、それでも彼らが修正したと言っているように機能させることはできません。
この問題に関するこれらの記事をすべて読んだことで、なぜそれが起こっているのかがわかりましたが、ハックムーブなどを使用せずに安全な方法でプロジェクトで動作させる必要があります。誰かがそれを機能させる方法を知っていて、私たちを助けてくれるといいのですが、それは「私たち」を意味します。
私の状況: 私は、ドメイン B (mvc4 webAPI) への ajax ポスト呼び出しを行う、ドメイン A でホストされている webapp を持っています。ajax post 呼び出しは次のようになります。
var profile = { Id:"1234567890", Name:"Name_01"}
$.ajax({
type: "POST",
url: 'http://domainB/api/Profile',
data: JSON.stringify(profile)
});
@domainBカスタム応答ヘッダーを設定するために使用しました:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
<add name="Access-Control-Allow-Headers" value="X-Requested-With" />
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS"/>
</customHeaders>
</httpProtocol>
</system.webServer>
@domainB webAPIポストメソッド私はこれを持っています:
public void Post(dynamic newProfile)
{
...
}
そのため、アクティブ化/開始された ajax 呼び出しで、webAPI プロジェクトのデバッグ モードで、webAPIOperation could destabilize the runtime
の JsonFX.Serilization.DataWriter で SerializationException を取得し、ブラウザーでエラーとして取得します
XMLHttpRequest cannot load http://domainA/api/Profile. Origin http://domainB is not allowed by Access-Control-Allow-Origin.
Fiddler で要求と応答をキャッチしていますがAccess-Control-Allow
、応答側にヘッダーがまったくないことがわかります。
私が使用しているものを書きましたが、これがうまくいかないため、ドメインAからドメインBへのajaxポストコールが機能するようにするために何をすべきか、またはこれに対する実際の解決策は何ですか。