17

このurl電話があります。URLは期待どおりにjsonオブジェクトを返します(ブラウザの直接呼び出し)が、次の行でajaxを介してそれを行うと

$.ajax({
       url: url, 
       type: "GET",
       dataType:"jsonp",   
       success: function(data) {
          alert(data);
       },
       error : function(error) {
          alert("no good "+JSON.stringify(error));
       }
});

それは私を返します

no good {"readyState":4,"status":200,"statusText":"success"}

スタックオーバーフローには他にも同様の質問があることは知っていますが、誰も解決していないようです。

4

3 に答える 3

37

これは、HTTP 要求は成功したが、データの解析は成功しなかったことを示しています。

つまり、データが JSONP としてフォーマットされていません。

于 2013-02-05T17:39:59.077 に答える
5

これらの変更により、私の問題は解決しました。

//サーバ側

echo $_GET['callback'] . '('.json_encode($data_to_encode).')';

//js

$.ajax({
       url: url+"?callback=?", 
       type: "GET",
       dataType:"jsonp",   
       success: function(data) {
          alert(data);
       },
       error : function(error) {
          alert("no good "+JSON.stringify(error));
       }
});
于 2013-02-05T17:51:30.673 に答える