JQuery $.ajax parsererror обработка JSON
Учитывая следующий фрагмент JavaScrip, я получаю ошибку синтаксического анализа JSON. Если я нажму URL-адрес напрямую, я получу действительный ответ JSON (проверено с помощью http://jsonlint.com/).
Как получить больше информации об ошибке разбора?
var purl = 'http://data.police.uk/api/crimes-at-location?date=2012-02&lat=52.629729&lng=-1.131592';
$.ajax({
type:'GET',
dataType:'jsonp',
jsonp:'jsonp',
url: purl,
success:function(data){ console.log('success',data)},
error:function(e, x, y){console.log('error', e, x, y)}
});
Ошибка в консоли:
error Object {readyState: 4, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…} parsererror Error {}
1 ответ
Решение
Это допустимый JSON, но это недопустимый JSONP, поскольку JSONP должен быть включен в функцию обратного вызова.
Эта служба также не поддерживает CORS, поэтому вы просто не можете получить JSON с ajax, вам придется использовать серверную часть и вместо этого делать вызов ajax на свой собственный сервер, поскольку та же самая политика происхождения не позволяет вам получить JSON напрямую.