jer*_*ome 2 javascript validation jquery firebug jsonp
我正在$.getJSON向另一个域发出jQuery 请求,所以我确保我的GET URI以"callback =?"结尾 (即使用JSONP).
Firebug的NET面板显示我正在按预期接收数据,但由于某种原因,控制台面板记录以下错误:"无效标签".
JSON使用JSONLint进行验证,因此我怀疑数据结构是否存在任何真正的错误.
我可能会收到此错误的任何想法?
小智 11
这是一个老帖子,但我还是发布了一个回复:
假设您要获取由以下文件"get_json_code.php"生成的jSON代码:
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>
Run Code Online (Sandbox Code Playgroud)
就像你提到的那样,$ .getJSON()在添加"jsoncallback =?"时使用JSONP.所需URL字符串的参数.例如:
$.getJSON("http://mysite.com/get_json_code.php?jsoncallback=?", function(data){
alert(data);
});
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,您将在Firebug中收到"无效标签"消息,因为"get_json_code.php"文件未提供有效的引用变量来保存返回的jSON字符串.要解决此问题,您需要将以下代码添加到"get_json_code.php"文件中:
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo $_GET['jsoncallback'].'('.json_encode($arr).')'; //assign resulting code to $_GET['jsoncallback].
?>
Run Code Online (Sandbox Code Playgroud)
这样,生成的JSON代码将添加到'jsoncallback'GET变量中.
总之,"jsoncallback =?" $ .getJSON()URL中的参数做了两件事:1)它将函数设置为使用JSONP而不是JSON,2)指定将保存从"get_json_code.php"文件中检索的JSON代码的变量.您只需确保他们拥有相同的名称.
希望有所帮助,
VQ.
| 归档时间: |
|
| 查看次数: |
16473 次 |
| 最近记录: |