Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Uncaught SyntaxError: Unexpected token на мою голову (https://javascript.ru/forum/css-html/53601-uncaught-syntaxerror-unexpected-token-na-moyu-golovu.html)

glukon87 10.02.2015 16:17

Uncaught SyntaxError: Unexpected token на мою голову
 
Добрый день!

Собственно вот такая попытка забрать JSON с чужого домена:

function getSuggest(text){

    $.getJSON("http://www.lastfm.ru/search/autocomplete?callback=?",{"q" : text, "jsonp":"suggestCallBack"});

}

suggestCallBack = function (data) {
    console.log('data');
}


результат - Uncaught SyntaxError: Unexpected token

При этом удаленный сервер отдает верный JSON
(проверил линтером - jsonlint.com)
и заголовки - код ответа 200, application/json;charset=UTF-8

подскажите, где накосячил?:)

danik.js 10.02.2015 17:01

Цитата:

Сообщение от glukon87
При этом удаленный сервер отдает верный JSON

А должен отдать кусок js-кода с вызовом функции suggestCallBack и передачей ей параметром.

рони 10.02.2015 17:25

Цитата:

Сообщение от glukon87
При этом удаленный сервер отдает верный JSON
(проверил линтером - jsonlint.com)

похоже он обьект отдаёт а не JSON

Цитата:

Сообщение от glukon87
"q" : text

откуда text?

glukon87 10.02.2015 18:39

Цитата:

Сообщение от рони (Сообщение 356003)
откуда text?

text - строка, передается в качестве параметра (опечатка была)


А есть варианты прочесть то, что вернул их сервер?

Можно конечно дергать через backend прослойку, но хотелось бы обойтись javascript'ом )

danik.js 11.02.2015 04:50

Сервер возвращает JSON. При этом не выставляет заголовки, разрешающие кроссдоменный запрос. Так что без прокси никак.

рони 11.02.2015 08:03

Цитата:

Сообщение от danik.js
Сервер возвращает JSON.

странный какой-то JSON без кавычек вокруг чисел 1.0 и подобных и этот обьект спокойно перегоняется в JSON

Aetae 11.02.2015 09:00

danik.js, он наверное решил что достаточно отбалды дописать "callback=?" и будет ему счастье.)

glukon87 11.02.2015 10:26

Aetae, он решил, что раз видит во вкладке "Сеть" ответ от чужего сервака, да еще и содержащий запрошенные данные, значит их как-то можно скормить яваскрипту. видимо ошибся.

Подсказали такую ссылку - http://stackoverflow.com/questions/8...-jsonp-request

но не завелось.

danik.js, рони, спасибо! Значит буду перекладывать часть работы на php :)

danik.js 11.02.2015 12:28

Цитата:

Сообщение от glukon87
Подсказали такую ссылку
но не завелось.

Что не завелось? То, под чем написано:
Цитата:

I don't think this will work any better then OP's existing solution..?
? :)
А в следующем ответе как раз и объясняется в чем проблема:
Цитата:

The response from *** is JSON, not JSON-P. Accessing JSON-data this way is against the cross-site policies, as the browsers prevent such responses to be returned to the client.

glukon87 11.02.2015 12:55

danik.js, а эти данные, что видны в качестве ответа сервера, яваскрипту никак не доступны? т.е. не обязательно JSON , в крайнем случае мог бы и регулярками разобрать.


Часовой пояс GMT +3, время: 18:07.