同一オリジン ポリシーの欠点の 1 つは、異なるポートまたはサブドメインをサポートしていないことです。その結果、services.site.com のようなサブ ドメインでサービスをホストする場合、JSONP を使用せずに www.site.com からサービスを呼び出すことはできません。
特定のオリジンからのリクエストのみを受け入れるように WCF サービスを構成する方法はありますか?
例:
$(document).ready(function () {
$("#Button").click(function () {
$.getJSON("http://services.site.com/service.svc/myService?callback=?", function (data) {
var jObj = $.parseJSON(data);
$("#Result").html(jObj.MyValue);
});
});
});
これが www.site.com から呼び出された場合、私はそれを機能させたいと思います。しかし、www.example.com のような別のサイトがそれを呼び出した場合、WCF サービスでそれをブロックしたいと思います。
web.config ファイルを次のように構成しようとしました。
<identity>
<dns value="www.example.com"/>
</identity>
しかし、www.site.com から電話をかけてみたところ、問題なく動作しました。これは、JSONP が正しいコールバック値を返すように、crossDomainScriptAccessEnabled を true に設定したためだと思います。WCF を使用してまだ数日しか経っていません。
前もって感謝します。