powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / немного не suggest
8 сообщений из 8, страница 1 из 1
немного не suggest
    #38875212
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добра.
появилась необходимость получить данные с lastfm suggest. Т.е. данные подсказки при наборе в поле.

пробую так:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
function getSuggest(test){

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

}

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



Syntax error at line 1 while loading: expected ';', got ':'
{"responseHeader":{"status":0,"QTime"
-----------------^
(Opera)

Либо

Uncaught SyntaxError: Unexpected token :
(Chrome)

Подскажите, что не так? или пните в нужном направлении)
...
Рейтинг: 0 / 0
немного не suggest
    #38875584
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди пишут такое:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
(function($) {
var url = 'http://www.jquery4u.com/scripts/jquery4u-sites.json?callback=?';
 
$.ajax({
   type: 'GET',
    url: url,
    async: false,
    jsonpCallback: 'jsonCallback',
    contentType: "application/json",
    dataType: 'jsonp',
    success: function(json) {
       console.dir(json.sites);
    },
    error: function(e) {
       console.log(e.message);
    }
});


})(jQuery);
...
Рейтинг: 0 / 0
немного не suggest
    #38875810
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тот же результат.

Причем в обоих случаях запрос то осуществляется, ответ сервера - код ответа 200, application/json;charset=UTF-8

тело ответа:

{"responseHeader":{"status":0,"QTime":0,"params":{"originalq":"queen","frompb":"true","q":"queen","userip":"xx.xx.xx.xx","wt":"json","rows":"10"}},"response":{"numFound":16449,"start":0,"docs":[{"id":"6-1270","reach":3591788,"weight":1.0,"resid":1270,"image":"45625545.jpg","artist":"Queen","restype":6},{"id":"6-1000569","reach":2255463,"weight":1.0,"resid":1000569,"image":"176855.jpg","artist":"Queens of the Stone Age","restype":6},{"id":"8-1831","reach":1524740,"resid":1831,"weight":0.5,"album":"Greatest Hits","image":"95148003.jpg","artist":"Queen","restype":8},{"id":"8-1416783","reach":1128703,"resid":1416783,"weight":0.5,"album":"Songs for the Deaf","image":"59975609.jpg","artist":"Queens of the Stone Age","restype":8},{"id":"6-16435665","reach":542347,"weight":1.0,"resid":16435665,"image":"181190.jpg","artist":"The Good, the Bad & the Queen","restype":6},{"id":"8-2024264","reach":896582,"resid":2024264,"weight":0.5,"album":"Greatest Hits II","image":"92633831.jpg","artist":"Queen","restype":8},{"id":"8-2027992","reach":862024,"resid":2027992,"weight":0.5,"album":"Lullabies to Paralyze","image":"47855851.jpg","artist":"Queens of the Stone Age","restype":8},{"id":"6-1004129","reach":394921,"weight":1.0,"resid":1004129,"image":"337253.jpg","artist":"Queensrÿche","restype":6},{"id":"6-1001052","reach":381881,"weight":1.0,"resid":1001052,"image":"37664651.jpg","artist":"Queen & David Bowie","restype":6},{"id":"9-12198","reach":1218301,"duration":355,"resid":12198,"weight":0.3,"track":"Bohemian Rhapsody","image":"45625545.jpg","artist":"Queen","restype":9}]}}


в консоль ошибка выпадает
Uncaught SyntaxError: Unexpected token :
undefined

может это не совсем JSON отдается? т.е. не верный формат? Хотя попробовал его PHP функцией json_decode почитать - нормально развернула

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
stdClass Object
(
    [responseHeader] => stdClass Object
        (
            [status] => 0
            [QTime] => 0
            [params] => stdClass Object
                (
                    [originalq] => q	
                    [frompb] => true
                    [q] => q	
                    [userip] => xx.xx.xx.xx
                    [wt] => json
                    [rows] => 10
                )

        )

    [response] => stdClass Object
        (
            [numFound] => 200834
            [start] => 0
            [docs] => Array
                (
                    [0] => stdClass Object
                        (
                            [id] => 6-1270
                            [reach] => 3591788
                            [weight] => 1
                            [resid] => 1270
                            [image] => 45625545.jpg
                            [artist] => Queen
                            [restype] => 6
                        )
...

                    [9] => stdClass Object
                        (
                            [id] => 8-2024264
                            [reach] => 896582
                            [resid] => 2024264
                            [weight] => 0.5
                            [album] => Greatest Hits II
                            [image] => 92633831.jpg
                            [artist] => Queen
                            [restype] => 8
                        )

                )

        )

)

...
Рейтинг: 0 / 0
немного не suggest
    #38875818
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если так передавать?

{"responseHeader":[{"status":0,"Q....]}
...
Рейтинг: 0 / 0
немного не suggest
    #38875826
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
заковыка в том, что запрос кросдоменный, и ответ формирую не я.
...
Рейтинг: 0 / 0
немного не suggest
    #38875841
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalamfurзаковыка в том, что запрос кросдоменный, и ответ формирую не я.

http://stackoverflow.com/questions/8428739/i-cant-to-process-response-to-a-jsonp-request
...
Рейтинг: 0 / 0
немного не suggest
    #38875901
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Winnipuh,

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
(function($) {
    try {

        var jsonp = {
            callbackCounter: 0,

            fetch: function(url, callback) {
                var fn = 'JSONPCallback_' + this.callbackCounter++;
                window[fn] = this.evalJSONP(callback);
                url = url.replace('=JSONPCallback', '=' + fn);

                console.log(url);

                var scriptTag = document.createElement('SCRIPT');
                scriptTag.src = url;

                document.getElementsByTagName('HEAD')[0].appendChild(scriptTag);
            },

            evalJSONP: function(callback) {
                return function(data) {
                    var validJSON = false;
                    console.log('typeof data = '+(typeof data));
                if (typeof data == "string") {
                    try {
                        validJSON = JSON.parse(data);
                    } catch (e) {
                        console.warn('invalid JSON');
                    }
                } else {
                    validJSON = JSON.parse(JSON.stringify(data));
                        window.console && console.warn(
                        'response data was not a JSON string');
                    }
                    if (validJSON) {
                        callback(validJSON);
                    } else {
                        throw("JSONP call returned invalid or empty JSON");
                    }
                }
            }
        }

    } catch (e) {
        console.warn(e);
    }


    var lastfm = "http://www.lastfm.ru/search/autocomplete?q=queen&callback=JSONPCallback";
    jsonp.fetch(lastfm , function(data) {console.log(data)});

})(jQuery);



в HEAD благополучно создается скрипт - <script src=" http://www.lastfm.ru/search/autocomplete?q=queen&callback= JSONPCallback_0"></script>

ошибка та же. видимо при получении данных браузер сам проверяет, соответствуют ли данные запрошенному типу и выдает ошибку.

Если на прямую скормить из консоли

JSONPCallback_0('{"responseHeader":{"status":0,"QTime":0,"params":{"originalq":"queen","frompb":"true","q":"queen","userip":"xx.xx.xx.xx","wt":"json","rows":"10"}},"response":{"numFound":16449,"start":0,"docs":[{"id":"6-1270","reach":3591788,"weight":1.0,"resid":1270,"image":"45625545.jpg","artist":"Queen","restype":6},{"id":"6-1000569","reach":2255463,"weight":1.0,"resid":1000569,"image":"176855.jpg","artist":"Queens of the Stone Age","restype":6},{"id":"8-1831","reach":1524740,"resid":1831,"weight":0.5,"album":"Greatest Hits","image":"95148003.jpg","artist":"Queen","restype":8},{"id":"8-1416783","reach":1128703,"resid":1416783,"weight":0.5,"album":"Songs for the Deaf","image":"59975609.jpg","artist":"Queens of the Stone Age","restype":8},{"id":"6-16435665","reach":542347,"weight":1.0,"resid":16435665,"image":"181190.jpg","artist":"The Good, the Bad & the Queen","restype":6},{"id":"8-2024264","reach":896582,"resid":2024264,"weight":0.5,"album":"Greatest Hits II","image":"92633831.jpg","artist":"Queen","restype":8},{"id":"8-2027992","reach":862024,"resid":2027992,"weight":0.5,"album":"Lullabies to Paralyze","image":"47855851.jpg","artist":"Queens of the Stone Age","restype":8},{"id":"6-1004129","reach":394921,"weight":1.0,"resid":1004129,"image":"337253.jpg","artist":"Queensrÿche","restype":6},{"id":"6-1001052","reach":381881,"weight":1.0,"resid":1001052,"image":"37664651.jpg","artist":"Queen & David Bowie","restype":6},{"id":"9-12198","reach":1218301,"duration":355,"resid":12198,"weight":0.3,"track":"Bohemian Rhapsody","image":"45625545.jpg","artist":"Queen","restype":9}]}}')


то отрабатывает нормально , возвращает объект (Object {responseHeader: Object, response: Object})
...
Рейтинг: 0 / 0
немного не suggest
    #38877390
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
немного жаль , но может кому пригодится результат))

проблема в том, что запрос возвращает JSON а не JSONP.
и, соответственно, яваскрипту весь этот JSON не достается.
придется тянуть через серверную обертку.

P.S.: Winnipuh , большое спасибо!)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / немного не suggest
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]