JQuery AJAX URL Shortener JSON-запрос не работает - PullRequest
0 голосов
/ 24 августа 2010

Я застрял - и это довольно неприятно из-за того, что я думал, что это будет просто: (

Jquery:

$.ajax({ 
 url: "http://ur.ly/new.json?href=http://www.yahoo.com"), 
 type: "GET",
 dataType: "jsonp",
 success: function(data){
 console.log(data);
}});

Я пытался сделать это, и FF даетмне ошибка "недопустимая метка", Chrome выдает другую.

Когда я использую "json" в качестве типа данных, я получаю нулевой возврат.

Разочаровывает то, что URL, когдавы пробуете его в браузере, работает нормально. И ошибка переменной jsonp для возвращаемых данных показывает, какие данные мне нужны, но ошибки не позволяют мне добраться до них.

Я пытался поменятьсяXML или Script, соответственно изменяя требования API, но ничего. Я пробовал другие укороченные сайты, но та же самая вещь продолжает происходить.

Также пытался перенести часть запроса на данные:, но это тоже не сработало.

HELP! :( И спасибо за просмотр.:)

Ответы [ 2 ]

1 голос
/ 24 августа 2010

jsonp правильно.

Любой другой тип не будет работать из соображений безопасности.


Я попробовал ваш код, и результат от ur.ly - это чистая строка json, а не строка jsonp:

{"code":"X5","href":"http://www.yahoo.com"}

Вы можете написать небольшой серверный скрипт для чтения этих данных.

Ваш javascript может затем использовать json вместо jsonp.

0 голосов
/ 24 августа 2010

Это потому, что вы пытаетесь делать запросы JSONP с помощью вызовов jQuery AJAX, но ur.ly API в настоящее время не поддерживает JSONP.Использование простых вызовов JSON в другой домен никогда не будет работать из-за одинаковой политики происхождения Javascript .

. Вам придется либо создать прокси-скрипт на стороне сервера, который будет работать как ход- между вашим JavaScript и удаленным сервером (как говорит Гомми выше) или используйте другой API сокращения URL, который поддерживает поддержку запросов JSONP (например, bit.ly ).

...