Вам нужно добавить параметр обратного вызова. Я объясню, почему именно ниже.
Вызов JSONP не работает без обратного вызова. Данные загружаются в тег сценария, и если код не находится в форме вызова метода, результатом будет только объект, который был бы отброшен, и метод обратного вызова успеха никогда не будет вызван.
Почему [не используется обратный вызов] возвращает синтаксическую ошибку?
Это как ваш Аякса ответ по существу выглядит без обратного вызова (например http://cvrapi.dk/api?search=test&country=dk):
<script>
{"vat":11618405,"name":"TESTRUP ... (snip)
</script>
Конечно, есть ошибка синтаксиса в этом JavaScript! :)
Вот ответ Аякса с обратного вызова (например, http://cvrapi.dk/api?search=test&country=dk&callback=callbackFunc):
<script>
callbackFunc({"vat":11618405,"name":"TESTR ... (snip)
</script>
Теперь, действительный JavaScript. $.jsonp
с вызовом callbackFunc()
в этом примере, и все правильно с миром.
Основные элементы JSONP, или "JSON с дополнением", как таковые:
- обратного вызова функция, определенная на вашем сайте.
- Запрос на удаленный API с помощью тега
- Включает специальные параметры, обеспечивающих имя функции обратного вызова
- Ответ:
- Есть только Javascript
- , который состоит из :
- Вызов функции, имя которого вы указали в запросе
- Аргумент являясь JSON данные, представляющие интерес
- получает выполняется немедленно, как если бы это были вызваны из собственного домена
Это обратного вызова расположение между вами и сервер, в сочетании с , избегая ограничений одного и того же происхождения, на самом деле весь трюк для JSONP
REF: So how does JSONP really work? и Wikipedia: JSONP
Изменить код JSon как это. Работает как шарм. Обратите внимание, что добавлен параметр «обратный вызов». JSONP ожидает этого. Вот отредактированный JSFiddle: http://jsfiddle.net/Drakes/syng17fv/2/
REF: https://github.com/jaubourg/jquery-jsonp/blob/master/doc/TipsAndTricks.md
$.jsonp({
url : '//cvrapi.dk/api?search=test&country=dk&callback=?',
success : function(json){
console.log('success')
},
error : function(){
console.log('err')
}
});
[Вы проверили Google?] (Http://stackoverflow.com/questions/24311023/unexpected-token-colon-json-after-jquery- ajaxget) –
У вас есть решение? – clarkk
да он это делает, прямо здесь: http://stackoverflow.com/questions/24311023/unexpected-token-colon-json-after-jquery-ajaxget – rlemon