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 напрямую.

Другие вопросы по тегам