0

次のように AJAX クロス ドメイン呼び出しを行うために JSONP を使用しています。

 $(document).ready(function () {
          $("#btnWCFREST").click(function () {
          $.ajax({
                  type: "GET",
                  url: "http://localhost:1415/MyService.svc/rh/data?id=4&callback=mycallback",
                  processData: false,
                  dataType: 'jsonp',
                  jsonpCallback: 'mycallback',
                  jsonp: 'callback'


              });


          });
      });

      function mycallback(data) {
          alert(data);
      };

応答がありません。問題を解決するために誰か助けてもらえますか? 通話の何が問題になっていますか?

次のように呼び出しを変更しましたが、まだ運がありません。

 $(document).ready(function () {
          $("#btnWCFREST").click(function () {
                 var url = "http://localhost:1415/MyService.svc/rh/data?id=4";
                  $.getJSON(url + "?callback=?", null, function(data) {
                    alert(data);
                });
         });
      });
4

2 に答える 2

1

Jqueryのajaxドキュメントに次のように書かれています:余分な「?callback =?」を追加します URLの最後にコールバックを指定します。URLがその要件を満たしていないため、 ( JSONPではなく) JSONリクエストとして扱われ、同一生成元ポリシーの制限が適用されます。Stackoverflowの実際の例を参照してください:jsonpwithjquery。さらに、クロスドメインサーバーがJSONPをサポートしていることを確認する必要があります。

于 2013-01-01T07:12:26.480 に答える
0

crossDomain : trueAjax設定を追加してみてください:

       $.ajax({
              type: "GET",
              url: "http://localhost:1415/MyService.svc/rh/data?id=4&callback=mycallback",
              processData: false,
              dataType: 'jsonp',
              jsonpCallback: 'mycallback',
              jsonp: 'callback',
              crossDomain: true
       });
于 2013-01-01T07:11:16.097 に答える