JSON.parse抛出不合逻辑的语法错误:意外的令牌

时间:2014-04-08 16:10:54

标签: javascript ajax json

我在解析通过AJAX调用从PHP中的方法传递的json字符串时遇到问题。 字符串是

[{"type":"successful","message":"Prijava uspe\u0161na!"}] 

当我尝试使用JSON.parse(the string)在javascript中解析它时,我在控制台中收到了一个意外的令牌错误。

当我在我的localhost上执行此操作时没有问题,即使我从PHP脚本得到相同的响应也没有错。

当我在ajax的成功函数中尝试以下内容时

console.log(message);
console.log(JSON.stringify(message));
console.log(JSON.parse(message));

我明白了

[{"type":"successful","message":"Prijava uspe\u0161na!"}]  login:102
"\r\n\r\n[{\"type\":\"successful\",\"message\":\"Prijava uspe\\u0161na!\"}]\r\n\r\n" login:104
Uncaught SyntaxError: Unexpected token  login:104

第104行(不是真的,控制台指向它):

console.log(JSON.parse(message));

我试过替换\ r \ n,结果是相同的

我真的很困惑......

1 个答案:

答案 0 :(得分:1)

您的JSON有一个BOM,它不是有效的令牌。

确保发送JSON的任何内容都正确编码,而不使用此BOM。