Является ли REST через междоменный AJAX плохой идеей в настоящее время (2011)? - PullRequest
4 голосов
/ 26 октября 2011

Я пишу службу REST, к которой должны обращаться веб-приложения, настольные клиенты, мобильные клиенты и т. Д. Через интерфейс REST.Идея состоит в том, чтобы хранить объекты, такие как заметки, события календаря и т. Д., В общей иерархии и предоставлять HTTP-методы для создания, обновления и удаления документов, поэтому это должно быть идеальной областью для интерфейса REST.

Мой планэто где-то сервер REST и другие серверы веб-приложений, использующие данные, поэтому мне нужно сделать междоменный запрос, на который распространяются особые ограничения по соображениям безопасности (см., например, эту статью ).Я также хочу сделать некоторые обновления в реальном времени.

Сейчас я проводил обширные исследования, изучал, что такое CORS, и пробовал его (с помощью tornado и jQuery.ajax), но сейчас у меня возникает подозрение, что установка, к которой я стремлюсь, просто приходит.слишком рано.Я пробовал только с Firefox (как 3.6, так и 9), но у меня уже есть проблемы:

  • HTTP-аутентификация не работает с jQuery.ajax () (даже если установлен withCredentials)
  • некоторые браузеры вообще не поддерживают CORS (говорит Википедия )
  • хотя бы один плагин FF ( RequestPolicy ) делает CORS вообще не работать

Я понимаю, что CORS / AJAX является возможным решением, но, похоже, существует слишком много ограничений для практического использования.Что вы, люди, которые делали подобные вещи раньше, думаете: это то, что я должен просто сделать и надеяться, что эти проблемы будут решены кем-то когда-нибудь в будущем?Или слишком рано для междоменного подхода REST / AJAX?Какую альтернативу вы бы выбрали для вышеуказанных планов?Когда я начинаю новый проект, я хотел бы сделать его чистым, без JSONP, прокси-серверов или других обходных путей, но если нет никакого пути, я все равно это сделаю.

Спасибо за любые ответы!

1 Ответ

1 голос
/ 26 октября 2011

Ничто не мешает вам предоставлять ответы в стандартном JSON (например, для случаев, когда CORS доступен в браузере), а в случае JSONP - нет.Это не повлияет ни на что, кроме вашего вывода.

Я бы не сказал, что CORS сам по себе жизнеспособен, поскольку IE <8 не поддерживает его.Я бы также сказал, что с JSONP все в порядке;это технология, используемая крупными игроками (Facebook API, Twitter API, Flickr API, различные API Google). </p>

Короче говоря, то, что вы сказали, правильно;В настоящее время CORS недостаточно широко используется для использования.

...