1

クロス ドメインから json データを取得する必要があります。

$.getJSON('http://xx.xx.xx.xx/SampleService/Handler.ashx?callback=?', data, function (jsonData) {
                alert('1');
            })
            .done(function () { console.log("second success"); })
            .fail(function () { console.log("error"); })
            .always(function () { console.log("complete"); });

ハンドラー コード:

context.Response.ContentType = "application/json";
                SampleService service = new SampleService();

                List<List<Byte>> response = service.GetData();
                string jsonData = JsonConvert.SerializeObject(response);
                context.Response.Write(string.Format("{0}([{1}]);", context.Request["callback"], jsonData));

エラーは次のとおりです。

"parsererror"
Error: jQuery19108131180874027861_1366004862133 was not called
4

2 に答える 2

1

クロス ドメイン リクエストには jsonp 呼び出しを使用します。このようなものを使用してください

$.ajax({
        url : "http://xx.xx.xx.xx/SampleService/Handler.ashx",
        type: "GET",
        dataType: "jsonp",
        jsonp : "callback",
        success: function(data) {alert("Success");},
        error: function(data) { alert("Error"); }

        });        
   });

あなたのphpページで、このような結果を返します

echo $_GET['callback'] . "($result)";exit;

$result は json_encoded 配列です。

于 2013-04-15T05:43:21.820 に答える
0

表示されている jQuery19108131180874027861_1366004862133 は、コールバック関数を指定しない場合に jQuery がアタッチする自動生成されたコールバック ラッパー関数です。つまり、callback=? があります。呼び出しているサーバー側スクリプトにアクセスできる場合は、JSON を関数でラップし、JSONP を使用してそれを呼び出して、クロス ドメインの問題を回避できます。つまり、コールバック関数に jsonCallback という名前を付けます。

サーバー側スクリプト出力:

jsonCallback(
    {
        [insert your json code here]
    }
);

次に、クライアント側:

(関数($) { var url = ' http://www.jquery4u.com/scripts/jquery4u-sites.json?callback= ?';

$.ajax({
   type: 'GET',
    url: url,
    async: false,
    jsonpCallback: 'jsonCallback',
    contentType: "application/json",
    dataType: 'jsonp',
    done: function(json) {
       console.dir(json);
    },
    fail: function(e) {
       console.log(e.message);
    }
});

})(jQuery);

さらに読む:例で説明された JQUERY の JSONP

于 2013-04-15T06:01:00.697 に答える