5

これが私のコードです

$.ajax({
    type: "GET",
    url: "http://example.com?keyword=r&callback=jsonp",
    success: function (data) {
        alert(data);
    },
    dataType: "jsonp",
    error: function (xhr, errorType, exception) {
        var errorMessage = exception || xhr.statusText;
        alert("Excep:: " + exception + "Status:: " + xhr.statusText);
    }
});

OK、上記のコードは正常に動作し、jsonp としてデータを取得しています。jsonp を json に変換する方法がわかりません。

4

4 に答える 4

4

この記事では、追加のガイダンスを提供する場合があります: Basic example of using .ajax() with JSONP?

リクエストによって返されるデータ構造の例を教えていただけますか?

特定の状況では、おそらく次のようなことを行うことができます。これがどうなるか教えてください:

// Create the function the JSON data will be passed to.
function myfunc(json) {
  alert(json);
}

$.ajax({
  type: "GET",
  url: "http://example.com?keyword=r&callback=jsonp",
  dataType: 'jsonp',
  jsonpCallback: 'myfunc', // the function to call
  jsonp: 'callback', // name of the var specifying the callback in the request
  error: function (xhr, errorType, exception) {
    var errorMessage = exception || xhr.statusText;
    alert("Excep:: " + exception + "Status:: " + xhr.statusText);
  }
});
于 2013-01-10T20:27:45.587 に答える
2

今、私はjsonpをjsonに変換する方法を理解できません。

それは無意味です。必要なのは、操作するプレーンなjavascriptオブジェクトであり、すでにそれを持っています(data)。


JSONPは、オブジェクトリテラルを使用して関数が呼び出されるスクリプトファイルです。リテラルはJSONのように見え、関数(名前は動的に生成されます)はパディングです。

JSONは、一般的なシリアル化形式であるJavaScriptObjectNotationのデータを含むファイル/文字列です。

于 2013-01-10T22:03:34.893 に答える
0

からアラートを受け取っている場合は、alert(data)すでに変換されています。JavaScript オブジェクトがあることを示すものを取得[object Object]する必要があります。これで、他の JavaScript オブジェクトと同じように、そのプロパティにアクセスできます。

alert(data.foo);

返される json によっては、配列の場合もあります。

于 2013-01-10T20:23:21.900 に答える
0

関数が必要です:

function jsonp(data){
    // do stuff with data here
}

関数は、データが返されたときに自動的に呼び出されます/

于 2013-01-10T20:23:36.967 に答える