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 和 param2),因为仅使用 json.URL 不起作用。谢谢。

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 回答