当 eval 返回的 json 值时,提示 Error: Invalid Label

我们经常会在服务器端返回 json 格式的值,这样可以直接在脚本中当作完整的对象来使用,但是,许多新手通常都会遇到一个错误提示: Invalid Label ,这个问题通常会让人苦恼不堪,因为明明正确的 json 格式,却提示错误。

假如你从服务器端返回的是 json 格式的字符串:

{
	siteName : "CodeBit.cn",
	siteUrl : "http://www.CodeBit.cn"
}

当你在脚本中用 eval 的方式运行:

var result = eval(o.responseText);
alert(result.siteName);

这时会提示 : Error: Invalid Label

实际上,我们的 json 格式并没有错误,只是在 eval 的时候,要把你的 json 值用 “()” 括号括起来:

var result = eval("(" + o.responseText + ")");
alert(result.siteName);

呵呵,这个往往最容易忽略,但是一旦有错误,往往也最让人头痛:)

关于 Artlover

有多年 web 开发经验,擅长领域 PHP / MySQL / CSS / Javascript / Zend Framework ,期望:在分享中共同成长。
此条目发表在 Ajax 分类目录,贴了 , , , , , 标签。将固定链接加入收藏夹。

当 eval 返回的 json 值时,提示 Error: Invalid Label》有 2 条评论

  1. Soros 说:

    如果JSON字符串最外层是{}就会有这个问题,最外层是[]就没有。

  2. 简单问题,简单解决办法,对我这半路出家的人确很有用啊,哈哈!(提个小建议:将验证码移到上面去吧)

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>