请看这个功能
$(".menu_tree img.edit").click(function()
{
id = this.id;
lang = '<?=$lang_id?>';
var body_width = $("body").width();
var body_height = $("body").height();
$("#shadow").width(body_width);
$("#shadow").height(body_height);
$("#shadow").show();
var width = $("#edit_title").width();
var height = $("#edit_title").height();
$("#edit_title").height(0);
$("#edit_title").width(0);
$("#edit_title").animate(
{
width: width,
height: height
},600);
$.post
(
"get_title.php",
{id: id, lang: lang},
function(data)
{
alert("qqq");
},
"json"
);
});
get_title.php
中的我生成json对象,类似于{name:"name",val:"value"}
如果我没有写"json"
,它会正常工作,但"json"
它甚至不会提醒qqq
:(
有什么想法吗?
由于
答案 0 :(得分:3)
{name: "name", val: "value" }
无效JSON。键也必须是字符串。
{"name": "name", "val": "value"}
答案 1 :(得分:3)
1.4.2解析器比早期版本更严格。正如michal所述,json无效,因为属性名称不是双引号。最近我在将网站升级到jQuery 1.4.2时遇到了这个问题。
我强烈建议允许PHP为您处理json编码。我怀疑你的问题是我在PHP中手动组合json字符串,jQuery拒绝它,因为有些是单引号。
所以,对于PHP而不是像
这样的东西echo "{name:'$val',val:'$val'}";
exit;
让PHP进行编码:
header('Content-type: application/json');
echo json_encode(array('name'=>$val,'val'=>$val));
exit;
另外,如果您还没有为JSON添加Content-Type标头也不会受到伤害。