Почему этот jQuery.ajax не вызывает ошибку? - PullRequest
1 голос
/ 09 июня 2011

У нас была интересная проблема сегодня утром - детали самой проблемы здесь не актуальны, и я уже исправил ее, но натолкнулся на что-то странное для меня, касающееся jQuery.

Сайт, который я создаю, работает только на https, поэтому Apache настроен на перенаправление любого входящего http-запроса в его https-эквивалент.Этот редирект работает нормально.Но у меня была ошибка в моем программном обеспечении, когда я пытался отправить следующий ajax-запрос:

jQuery.ajax({  type:       "PUT",
           url:        "http://somewhere.com/cmdt/todo_lists/8457/toggle",
           data:       { deployment_id: 827},
           dataType:   "script"});

Я понимаю, что это не удастся - я в порядке с jQuery, не желающим следовать перенаправлению.Но фактическое поведение еще более странное: я никогда не вижу, чтобы запрос xhr вообще выдавался!И нет ошибки JavaScript!Просто молчит.Если я изменяю URL на https или относительный путь, он работает нормально, никаких проблем.У меня вопрос, почему не пытался отправить запрос раньше?И почему не возникла ошибка?

Ответы [ 2 ]

3 голосов
/ 09 июня 2011

Причина, по которой вы не получаете сбой, заключается в том, что это межсайтовый запрос, и поэтому вместо использования XMLHttpRequest он фактически генерирует тег HTML <script> и помещает его в DOM и использует этот механизм.чтобы загрузить файл.

Это работает достаточно хорошо (учитывая, что это полный взлом неправильных понятий "безопасности" браузера), но у jQuery нет возможности отловить ошибки в этот момент, к сожалению.Вероятно, вы получите ошибку браузера, если у вас включен режим разработчика, но это все.

0 голосов
/ 09 июня 2011

Если вы запустите его с URL-адреса https и попытаетесь открыть эквивалентную http страницу, вы столкнетесь с междоменными проблемами из-за различных протоколов , которые они используют.Взгляните на политика того же происхождения .

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