0

今日、私は初めての ASP MVC WebService (.Net バージョン 4、Entity4.2) を作成しました。これは非常に単純で、カスタム ItemChoice オブジェクトの配列を返すだけです。IE から直接呼び出すと、json オブジェクトをダウンロードしようとします。FF から呼び出すと、オブジェクトの XML バージョンが表示されます。

VS 12 に同梱されている jquery 1.7.1 を使用して、(開始するために) localhost で構築しているページに Web サービスを統合する作業を行っています。

JQuery からサービスを呼び出すと、成功関数が実行されません。ただし、getJSON を同じサービスのローカル コピーにポイントすると、機能します。Charles Web Proxy を見ると、どちらも戻ってきて、同じリターンを持っているように見えます。

コードは次のようになります。

<script type="text/javascript">
    $(document).ready(function() {
        $.getJSON('http://myserver/CECService/api/itemchoices',
            function (data, status) {
                $.each(data, function(key, val) {
                    $('<option />', {value:val.itemValue, text:val.displayText}).appendTo('#School');

                });//end each
            });//end get json
    });//end document.ready
</script>
4

1 に答える 1

3

ブラウザの同一オリジンセキュリティ ポリシーに違反する ajax 呼び出しを行っているため、この問題が発生しています。潜在的な回避策の説明については、以下を参照してください。

編集:

よく使用される別のアプローチはJSONPです。

于 2012-11-15T04:32:07.293 に答える