执行:
$.post(
"/url/to/method",
{ },
function(data){
var obj2 = eval("("+$(data).children()+")");
// OR var obj = $.evalJSON($($(data).children())); // Jquery-json
$body = $("#AAA");
$body.html(obj.fied);
},
"xml"
);
虽然在firebug中的元素列表“(第5行或第6行)错误后变成”缺失“。方法的JSON输出已通过jsonlint.com /
验证可能很明显,但请我是围绕AJAX / JSON的新手。感谢
答案 0 :(得分:14)
可能发生的是你的$ .post调用已经返回一个JSON对象。 jQuery将尝试自动检测JSON并为您解析它。当您在像这样的JSON对象上调用eval时,您会看到此错误。偷偷摸摸的!只需按原样使用数据对象。
答案 1 :(得分:5)
使用JSON.parse方法,或确保在将其传递给eval之前在您的parens旁边添加一个空格...
eval(" (" + data + ") ");
答案 2 :(得分:0)
您是在.NET 2.0中编写的吗?如果是这样,请尝试将数据构建到查询字符串中,而不是传递JSON对象。
实施例: VAR1 =阿尔玛&安培; VAR2 =用户
其中“var1”和“var2”是您的webmethod所期望的参数的名称。使用帖子传递此信息。数据:{querystring} 我在向2.0中的Web服务传递JSON时遇到了问题。
祝你好运
答案 3 :(得分:0)
事实证明,jQuery将尝试确定结果是否为JSON并自动解析它,但在这种情况下,数据已经是JavaScript对象而不是等待解析的JSON字符串。因此,您可以按原样使用此对象,而不是使用eval()和JSON.parse。