У меня есть запрос AJAX с JQuery «автозаполнения», как код ниже:Неожиданный токен <в формате JSON в положении 2 Jquery автозаполнения
var clientesList = [];
$("#clientes").autocomplete({
source: function (request, callback) {
$.ajax({
type: "POST",
url: "../../../Cliente/GetClientesByName",
data: "{'nome':'" + request.term + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
debugger;
callback($.map(data.cities, function (obj) {
return obj.Main
}))
}
})
}
})
Когда событие срабатывает, ошибка показала в jquery.min? ?
"Create:2 Uncaught SyntaxError: Unexpected token < in JSON at position 2"
Мой вход HTML заключается в следующем:
<input type="text" id="clientes" class="form-control col-md-10" />
Ваш удаленный сервис может быть возвращение HTML и не JSON. Кроме того, ваши данные недействительны JSON. Попробуйте 'data: JSON.stringify ({nome: request.term})'. Эти два могут быть связаны (плохие данные -> ответ об ошибке HTML) – Phil
Расширение комментария @ Phil, только кавычки являются допустимыми разделителями строк в JSON, а не апострофами. JSON может выглядеть как Javascript, но это не так. – Ouroborus
Я бы сделал ставку на то, что ваш запрос перенаправляется, потому что вы вышли из системы, обработчик ошибок вышел или 404, а '<' исходит из того факта, что вы фактически получаете HTML-документ. –