0

クロスドメイン AJAX 呼び出しを行っていますが、何か間違っているのか、API 呼び出しのプロバイダーが間違って JSON を返しているのかわかりません。API 呼び出しから応答を受け取るときはいつでも、JSON オブジェクトではなく文字列です。これが私のAJAX呼び出しです。

    $.ajax({
        async: false,
        dataType: 'jsonp',
        url: 'http://cross-domain/getSummaryStat.action',
        data: { minDailyDate: start_param, maxDailyDate: end_param },
        success: function(response) {
            map = {
                gamefuse: response["ROM-GF-Live"],
                facebook: response["ROM-FB-Live"],
                kongregate: response["ROM-Kongregate-Live"],
                yahoo: response["ROM-Yahoo-Live"]
            }
        },
        error: function(xhr, textStatus, errorThrown){
           alert('request failed');
        }
    });

応答が返ってきたら、ここに response.result があります

"[{"dayRetention1":"0.01453800063053","visit":"601","installs":"203"},{"dayRetention1":"0.122484891199019","visit":"33863","installs":"10949"]"

注:jsonpクロスドメイン AJAX 呼び出しであるため、dataType を に設定しましたが、それがないとエラーが発生しました。

4

1 に答える 1

0

まず、返された文字列が正しい JSON 形式になっていないようです。最後に閉じ括弧がありません。

これで解決しない場合、ここでの問題はおそらくサーバー側にあります。JSONP はパディング付きの JSON であるため、戻り関数は次のようにすべきではありません。

function_name("the string that I return");

代わりに、次のものが必要です。

function_name({
    "name":"Bob Loblaw", 
    "age":40
});
于 2013-10-18T20:39:22.557 に答える