jsonp з jquery [закрито]


89

Чи можете ви навести дуже простий приклад читання запиту jsonp за допомогою jquery? Я просто не можу змусити його працювати.

Відповіді:


144

Ось робочий приклад:

<html><head><title>Twitter 2.0</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head><body>
<div id='tweet-list'></div>
<script type="text/javascript">
$(document).ready(function() {
    var url =  "http://api.twitter.com/1/statuses/user_timeline/codinghorror.json";
    $.getJSON(url + "?callback=?", null, function(tweets) {
        for(i in tweets) {
            tweet = tweets[i];
            $("#tweet-list").append(tweet.text + "<hr />");
        }
    });
});
</script>
</body></html>

Зверніть увагу ?callback=?на кінець запитуваної URL-адреси. Це вказує на getJSONфункцію, що ми хочемо використовувати JSONP. Видаліть це, і буде використаний ванільний запит JSON. Що не вдасться через ту саму політику походження .

Ви можете знайти більше інформації та прикладів на сайті JQuery: http://api.jquery.com/jQuery.getJSON/


2
Я випробовував $ .ajax з цими параметрами jsonp і не міг змусити це працювати. У будь-якому випадку, це чудово працює, дякую.
akula1001

2
Чи ?callback=?насправді це надсилається як частина URL-адреси, чи це просто своєрідний прапор, який jQuery бачить і знімає перед тим, як отримати URL-адресу?
hippietrail

1
Що потрібно, якщо ваша URL-адреса вимагає параметрів? (Наприклад: ?p=1&s=50)
ONDEV

2
Я знайшов, що це хороше посилання як вихідний пункт. Щоб відповісти вище: Так, зворотний дзвінок надсилається як параметр і повинен бути надісланий назад як функція, обгорнута навколо відповіді JSON. Див. Stackoverflow.com/questions/7936610/… . Для надсилання додаткових параметрів вони надсилаються у другому параметрі getJSON (), у наведеному вище прикладі. замінити null на {p: 1, s: 50}
Екрополь

Я отримую код помилки 410 - немає. Чи є де-небудь "вічно" присутня служба, яка повертає JSON де-небудь? Тільки для того, щоб можна було перевірити, чи працює власний метод?
Конрад Вільтерстен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.