Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.02.2015, 16:17
Новичок на форуме
Отправить личное сообщение для glukon87 Посмотреть профиль Найти все сообщения от glukon87
 
Регистрация: 10.02.2015
Сообщений: 6

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

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

Последний раз редактировалось glukon87, 10.02.2015 в 18:35.
Ответить с цитированием
  #2 (permalink)  
Старый 10.02.2015, 17:01
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от glukon87
При этом удаленный сервер отдает верный JSON
А должен отдать кусок js-кода с вызовом функции suggestCallBack и передачей ей параметром.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2015, 17:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

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

Сообщение от glukon87
"q" : text
откуда text?
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2015, 18:39
Новичок на форуме
Отправить личное сообщение для glukon87 Посмотреть профиль Найти все сообщения от glukon87
 
Регистрация: 10.02.2015
Сообщений: 6

Сообщение от рони Посмотреть сообщение
откуда text?
text - строка, передается в качестве параметра (опечатка была)


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

Можно конечно дергать через backend прослойку, но хотелось бы обойтись javascript'ом )
Ответить с цитированием
  #5 (permalink)  
Старый 11.02.2015, 04:50
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сервер возвращает JSON. При этом не выставляет заголовки, разрешающие кроссдоменный запрос. Так что без прокси никак.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 11.02.2015, 08:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от danik.js
Сервер возвращает JSON.
странный какой-то JSON без кавычек вокруг чисел 1.0 и подобных и этот обьект спокойно перегоняется в JSON
Ответить с цитированием
  #7 (permalink)  
Старый 11.02.2015, 09:00
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

danik.js, он наверное решил что достаточно отбалды дописать "callback=?" и будет ему счастье.)
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 11.02.2015, 10:26
Новичок на форуме
Отправить личное сообщение для glukon87 Посмотреть профиль Найти все сообщения от glukon87
 
Регистрация: 10.02.2015
Сообщений: 6

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

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

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

danik.js, рони, спасибо! Значит буду перекладывать часть работы на php
Ответить с цитированием
  #9 (permalink)  
Старый 11.02.2015, 12:28
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от 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.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #10 (permalink)  
Старый 11.02.2015, 12:55
Новичок на форуме
Отправить личное сообщение для glukon87 Посмотреть профиль Найти все сообщения от glukon87
 
Регистрация: 10.02.2015
Сообщений: 6

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Uncaught SyntaxError: Unexpected token ILLEGAL | JS, Django MichaelPak Общие вопросы Javascript 5 12.11.2013 16:52
будьте аудиторами на мою голову))) rudolfe Оффтопик 6 02.03.2013 21:19
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34