javascript - "invalid label"jQuery getJSON 的 Firebug 错误

标签 javascript jquery validation jsonp firebug

我正在向另一个域发出 jQuery $.getJSON 请求,因此请确保我的 GET URI 以“callback=?”结尾(即使用 JSONP)。

Firebug 的 NET 面板显示我正在按预期接收数据,但由于某种原因,控制台面板记录以下错误:“无效标签”。

JSON 通过 JSONLint 进行验证,所以我怀疑数据结构是否真的有问题。

知道为什么我可能会收到此错误吗?

最佳答案

这是一篇旧帖子,但我还是要发布回复:

假设您想要获取由以下文件“get_json_code.php”生成的 JSON 代码:

<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>

就像您提到的,当您添加“jsoncallback=?”时,$.getJSON() 使用 JSONP。参数为所需 URL 的字符串。例如:

$.getJSON("http://mysite.com/get_json_code.php?jsoncallback=?", function(data){ 
   alert(data);
});

但是,在这种情况下,您将在 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].
?> 

这样,生成的 JSON 代码将被添加到“jsoncallback”GET 变量中。

总之,“jsoncallback=?” $.getJSON() URL 中的参数执行两件事:1) 将函数设置为使用 JSONP 而不是 JSON,2) 指定用于保存从“get_json_code.php”文件检索的 JSON 代码的变量。您只需确保他们具有相同的名称。

希望有帮助,

Vq。

关于javascript - "invalid label"jQuery getJSON 的 Firebug 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2822609/

相关文章:

asp.net - jsTree 导致整个页面的链接损坏

javascript - OBJECT[x] 是什么意思?

javascript - 无法在 ionic 中隐藏启动屏幕

javascript - 如何一次滚动绘制每个 SVG 路径(按时间顺序)?

Javascript 验证最多允许 3 个逗号

jQuery 插件 : Validation- labels are getting hidden

Javascript 浮点加法

jquery - 尝试隐藏汉堡菜单并在大屏幕上显示文本链接

jquery - 使用 jQuery 延迟显示 ajax 加载 gif

android - 如何使用 ViewModel 和 Databinding 实现验证?