我对此感到困惑: 的test.html:
<!DOCTYPE html>
<meta charset="utf-8">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<script>
console.log(jQuery.parseJSON('{"key" : "value_%"}')); ## line 10
$.ajax(
{ url : "/scripts/test.pl",
success : function(resp) {console.log(resp); console.log(jQuery.parseJSON(resp))}
}
);
</script>
</body>
</html>
/scripts/test.pl:
print '{"key":"value_%"}';
输出:
Object {key: "value_%"} test.html:10
{"key":"value_%"(MISSING)} test.html:13
Uncaught SyntaxError: Unexpected token ( jquery.min.js:3
即。 ajax响应正在更改添加此“(MISSING)”位的JSON文本,从而使parseJSON失败。
为什么会这样?我该如何避免呢?
米;
答案 0 :(得分:0)
没有理由手动调用parseJSON。只需使用dataType选项
$.ajax({
url : "/scripts/test.pl",
dataType: "json",
success : function(resp) {console.log(resp);}
} );