AJAX VS JSon Вопрос междоменной встроенной безопасности - PullRequest
4 голосов
/ 24 января 2010

Похоже, я не могу позвонить за пределы текущего имени домена с помощью "AJAX".Но я могу вызвать твиттер API (с JSON) в JQuery ... не оба используют объект XMLHTTP?Если да (или нет), почему я могу вызывать другое доменное имя с помощью JSON (используя JQuery), но не с помощью AJAX?В чем разница между Ajax и JSON?

Ответы [ 2 ]

7 голосов
/ 24 января 2010

Twitter API использует JSONP, который не использует XMLHTTPRequest, но использует тег <script> для включения «чужого» JavaScript. Затем этот скрипт вызывает функцию в вашем собственном javascript.

Интеграция Google Maps со сторонними веб-сайтами была бы невозможна без этого "взлома" (на самом деле это и есть взлом).

Вот больше информации о JSONP:

http://ajaxian.com/archives/jsonp-json-with-padding

или в статье в Википедии о JSON:

http://en.wikipedia.org/wiki/JSON#JSONP

0 голосов
/ 24 января 2010

JSON - это формат файла, тогда как AJAX - это метод на JavaScript для отправки и получения данных с веб-сервера после завершения загрузки страницы. X в AJAX - это XML (также формат файла), который является альтернативой JSON, но это немного неправильно, потому что многие вещи, которые люди называют AJAX, на самом деле вообще не используют XML.

Ссылка г-на ЛейБэрта на JSONP очень полезна с точки зрения практического объяснения того, что происходит в API Twitter; это вовсе не запрос XMLHTML, а просто еще один тег-скрипт, указывающий на файл javascript на веб-сайте твиттера, который затем загружается вместе с остальной частью вашей страницы при первой загрузке страницы.

Вы можете получить аккуратные вещи через это, но я не думаю, что вы можете сделать это после загрузки страницы (как с AJAX), если вы не начинаете возиться со скрытыми IFrames или подобным. Если вам действительно нужно получить вещи в стиле AJAX без XMLHTTPRequests, это то, что вы хотите изучить; динамическое добавление IFrame к документу, который ссылается на страницу, которая запрашивает скрипт (или аналогичный) с другого сайта. Здесь есть некоторое обсуждение плюсов и минусов этого здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...