Javascript 香草ES6 aJax调用意外令牌
尝试从服务器返回一些JSON代码,以便我可以在JavaScript中操作它 但是,我得到了以下错误: 未捕获的SyntaxError:JSON中位置10处的意外标记m 这是我的密码:Javascript 香草ES6 aJax调用意外令牌,javascript,ajax,Javascript,Ajax,尝试从服务器返回一些JSON代码,以便我可以在JavaScript中操作它 但是,我得到了以下错误: 未捕获的SyntaxError:JSON中位置10处的意外标记m 这是我的密码: getJSON(url, success) { let query = [ 'cars', 'vans', 'bikes' ]; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() {
getJSON(url, success) {
let query = [ 'cars', 'vans', 'bikes' ];
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
success(JSON.parse(xhr.responseText));
} else {
exit(xhr.responseText);
}
}
};
xhr.open('GET', url);
xhr.send();
}
这是我在控制台上得到的响应。记录xhr.responseText
:
[
{
make: 'VOLVO'
},
{
make: 'AUDI'
},
{
make: 'VOLKSWAGON'
},
]
您试图解析的对象是有效的JavaScript对象,但不是有效的JSON
键
s应该是字符串,定义为
零个或多个Unicode字符的序列,用双引号括起来,使用反斜杠转义
不应使用任何尾随逗号(请参阅)
对象的正确JSON字符串应为:
let s = '[ {"make": "VOLVO"}, {"make": "AUDI"}, {"make": "VOLKSWAGON"} ]';
可以修复代码以检测此问题:
getJSON(url, success) {
let query = [ 'cars', 'vans', 'bikes' ];
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
try {
let parsedJSON = JSON.parse(xhr.responseText);
success(parsedJSON);
} catch (e) {
if (e instanceof SyntaxError === true) {
// Problem with the format of the JSON string.
} else {
// Other error
}
}
} else {
exit(xhr.responseText);
}
}
};
xhr.open('GET', url);
xhr.send();
}
杂项。资源:
“
,但它发现一个m
。投票关闭,因为这是一个数据问题,而不是编码问题。