我对此感到困惑: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 响应正在更改 JSON 文本添加此 '(MISSING)' 位,从而使 parseJSON 失败。
为什么会这样?我应该如何避免这种情况?
米;