Chrome 返回“语法错误:意外令牌”
Chrome returns "SyntaxError: Unexpected token"
好吧,这个问题已经被问得很频繁,而且有很多变化,但我仍然没有找到任何答案可以救赎我免受这种折磨。
我的代码在Safari,Internet Explorer v.8上工作正常。但是,Chrome 会抛出"语法错误:意外令牌"消息 - 仅以特定组合(它是关于链式的)。
以下是我从 ASP(经典)页面返回的 JSON。它适用于 99% 的输入,但对于以下 JSON 文本,它会引发错误:
{"queryStatus":"Not_Empty", "printID":["50674","54648","50437","37564","37566","37565","49124","null"], "printName":["BBB-12312313","BBB-1558","BBB-2-065 + 2-066","BBB-2-217","BBB-2-217b","BBB-2-226/2-217b ","BBB-2-5961b","null"]}
现在,我的JS代码如下:
$.ajax({
type: "GET",
url: "callbacks/xmlHTTPRequestGetPrintItems.asp?LabelID=" + $("#LicenseLabel").val() + "&RequestType=0",
data: "",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (data, textStatus, jqXHR) {
if (data.queryStatus == "Not_Empty") {
for (i = 0; i < data.printID.length - 1; i++) {
$('#ApprovalItem').append($('<option>', { value: data.printID[i] }).text(data.printName[i]));
}
}
},
error: function (xhr, ajaxOptions, thrownError) { alert(thrownError); }
});
结果:"语法错误:意外的令牌"
这是我尝试过的:
- 更改"内容类型"/删除它,包括 $.ajax 选项和服务器端页面的响应;
- 寻找特殊字符 - 什么都没有;
- 拉出对象末尾的"空"字符串;
我已经阅读了我可能从数据库中检索的零宽度间距(也许是Unicode-200B?),但我还没有设法解决它。
再次 - 它在 Chrome 上适用于 99% 的输入,而在 IE 8 上适用于 100%。协助将不胜感激,干杯。
这可能有效,也可能无效。 我无法重现上述信息的问题,这显然使您难以为您提供帮助,但这将是我的第一个建议......
$.ajax({
type: "GET",
url: "callbacks/xmlHTTPRequestGetPrintItems.asp?LabelID=" + $("#LicenseLabel").val() + "&RequestType=0",
data: "",
contentType: "application/json; charset=utf-8",
dataType: "text",
async: false,
success: function (data, textStatus, jqXHR) {
data = JSON.parse(data);
if (data.queryStatus == "Not_Empty") {
for (i = 0; i < data.printID.length - 1; i++) {
$('#ApprovalItem').append($('<option>', { value: data.printID[i] }).text(data.printName[i]));
}
}
},
error: function (xhr, ajaxOptions, thrownError) { alert(thrownError); }
});
我所做的只是将 dataType 指定为文本,而不是 JSON,然后在返回时使用JSON.parse()
。 它至少会确定错误是调用还是响应(但我认为我们已经知道了)。
相关文章:
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- jQuery$.getJSON抛出意外令牌
- 为什么我在下面的..of循环中得到意外令牌
- 组件中的ReactJS意外令牌
- AngularJS $http GET 请求到本地 JSON 文件返回语法错误:意外令牌]
- 巴别塔,意外令牌 (15:33) ::.
- Sencha 2.0 和 Codeigniter RESTful API 生成未捕获的语法错误:意外令牌:
- 在事件上使用 jquery 时出现意外令牌
- JSON 中位置 4 处的意外令牌<
- 意外令牌 ) 在我的代码中
- Electron 和 Babel 6 异步/等待抛出意外令牌
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- jQuery after() uncatch SyntaxError: 意外令牌 ILLEGAL
- 使用节点javascript的意外令牌ILLEGAL
- Javascript/JQuery-Chrome意外令牌
- Ajax 帖子未捕获语法错误:意外令牌非法
- angularjs-SyntaxError:请求从服务器返回时出现意外令牌
- jquery:使用ember的意外令牌C
- React本机项目中的意外令牌
- 解析有效的 JSON 得到“语法错误:意外令牌非法”