Использование JSON для решения междоменных проблем - PullRequest
2 голосов
/ 24 августа 2011

AJAX на основе JavaScript казался хорошим подходом до тех пор, пока мы не достигли ограничения на то, что клиенты AJAX могут обмениваться данными только с сервером, с которого они загружаются, и, следовательно, придерживаются «той же политики происхождения».

МожетКто-нибудь, пожалуйста, скажите мне, как JSON может решить эту междоменную проблему, так как, насколько мне известно, JSON - это только формат данных, в котором говорится, как данные могут быть представлены.

Пожалуйста, дайте свои советы по этому вопросу.XMLHttprequest контролируется форматом данных различной структуры

Ответы [ 3 ]

2 голосов
/ 24 августа 2011

См. JSONP в Википедии:

JSONP или «JSON with padding» - дополнение к базовому формату данных JSON, шаблон использования, позволяющий странице запрашивать данныес сервера в другом домене.JSONP является решением этой проблемы, образуя альтернативу более современному методу, называемому Cross-Origin Resource Sharing.

...

Затем сервер упаковывает свой JSONответ с этим префиксом, или "padding", перед отправкой в ​​браузер.Когда браузер получает завернутый ответ от сервера, он теперь является сценарием, а не просто объявлением данных.

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

Смотрите эту вики запись. Это показывает, как и почему. Но если быть точным:

Это работает, потому что это больше не json, а потому что это интерпретируется как script / javascript

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

Вряд ли так элегантно, как отвечает jsonp, но с дополнительными бонусами:

  • Позволяет запрашивать серверы, которые не "осведомлены" jsonp.
  • Возможен сервер-проверка данных на стороне.

Моя точка зрения направлена ​​на написание сценария на вашем собственном сервере, который бы передавал запросы и ответы по прокси.

Таким образом, вы также можете проверить содержимоеданных.

Кроме того, jsonp требует, чтобы запрошенный сервер инкапсулировал свой ответ json в функцию обратного вызова.Это решение не зависит от того, поддерживает ли запрашиваемый сервер jsonp.

(редактировать): Конечно, было бы разумно убедиться, что скрипт не позволяет всем прокси все:)

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