0

インターネットで入手したコード例を使用しています。jquery の部分は次のとおりです。

$.ajax({
     url: punctis_content_url + "?url=" + encodeURIComponent(document.URL),
     dataType: 'jsonp',
     success:function(json){
         alert(json);
     },
     error:function(){
         alert("Error");
     }
     });

リモートサーバー上のphpは次のとおりです。

    $arr = array('URL' => $trackUrl, 'param2' => "element2");
    echo($_GET['callback']."(".json_encode($arr).");");

これは正常に機能しています。jquery からアラートを受け取りました。取得したサーバー スクリプトを直接呼び出すと、次のようになります。jsonp1357658534513({"URL":"http:\/\/infoabout.me\/punctis\/punctis.php","param2":"element2"});

問題は、コールバック コードがどのように生成されるのか、それが何を意味するのかということです。json.URLだけを使用しても機能しないため、そのjsonからデータ(URL、およびparam2)を取得する方法。ありがとう。

4

2 に答える 2

0

jsonこの場合は JavaScript オブジェクトです。プロパティからデータを取得するだけです。

alert(json.URL) // $trackUrl value
alert(json.param2) // element2
于 2013-01-08T16:08:56.883 に答える
0

jsonp は、javascript 関数の呼び出しによって生成された json 文字列をラップすることによって作成されます。このための PHP の例は次のようになります。

$callbackFunction = $_GET['callback'];
echo $callbackFunction . "(" . json_encode($object) . ")";

jsonp が取得されると、関数が呼び出されます。この関数は、jQuery、dojo、またはその他の js フレームワークなどを使用して自動的に接続するか、ハードコードすることができます。たとえば、次の関数を作成すると、次の関数で呼び出されます。あなたの特定のケース。幸運を!

function jsonp1357658534513(string){
    console.log(string);
}
于 2013-01-08T16:22:18.837 に答える