У меня есть веб-приложение, использующее jQuery.Ajax для получения данных JSON с уровня сервиса. Я получаю следующую ошибку в.done вызова Ajax (а не.fail).
0x800a03f6 - Ошибка выполнения JavaScript: Недопустимый символ
Строка кода, генерирующая ошибку:
var a = JSON.parse(result.d);
Возвращаемые данные находятся в идеальном формате JSON при просмотре в отладчике:
[{"name":"Admin"},{"name":"SuperUser"}]
Я вижу много длины волны на этой ошибке при поиске в Google, но никаких разрешений. Пожалуйста помоги.
Недавно я получил эту же ошибку и проследил ее до недопустимого символа в таблице SQL-сервера, с которой читала веб-служба. В отладчике этот символ появился как пробел, но на самом деле был символом юникода (0x28 в этом случае). После удаления символа из db я больше не получил ошибку. Время, чтобы опровергнуть мою проверку ввода, чтобы убедиться, что эти значения больше не сохраняются в db! :)
Я обрабатываю свои результаты в успешной части $.ajax
$.ajax({
url: serviceurl,
dataType: 'json',
success: function(responseText) {
//responseText is already a JSON object so you can access its properties directly
//not that I encourage that :p
if(responseText.length>0)
{
//do something with the array
}
},
complete: function (){
console.log('ajax complete');
},
error: function() {
console.log('ajax error');
}
});
[{"name":"Admin"},{"name":"SuperUser"}]
, почему вы используетеresult.d
вместо простоresult
? Я не вижуd
свойства наresult