Сбой синхронного вызова AJAX на iPad, но не на других платформах и в браузерах - PullRequest
4 голосов
/ 14 июля 2011

Кто-нибудь знает, почему синхронный вызов ajax завершился неудачно и выдает следующую ошибку в Safari на iPad, но тот же код отлично работает на всех других платформах и браузерах, которые я тестировал до сих пор?

NETWORK_ERR: XMLHttpRequest Исключение 101: в синхронных запросах произошла сетевая ошибка.

Эта ошибка говорит о том, что я пытаюсь выполнить междоменный запрос, но это не так; запрошенный URL находится на том же хосте, и на самом деле это относительный URL. Даже в обычных тестах это не работает на iPad (и работает на всех других платформах и браузерах, включая Safari), поэтому я уверен, что исключил любую возможность тайм-аута.

Кроме того, тот же запрос, если он сделан асинхронно, отлично работает на iPad; только синхронные запросы дают исключение 101. Это сводит меня с ума!

Еще одна деталь: это происходит только на моем рабочем сервере. Синхронный вызов ajax на моем сервере разработки работает нормально. Оба сервера требуют одинакового клиентского сертификата ... поэтому я не думаю, что есть какая-то разница. Я не могу думать о какой-либо разнице между двумя серверами, которая могла бы иметь здесь эффект.

Любое понимание этой проблемы будет с благодарностью. Спасибо!

1 Ответ

3 голосов
/ 15 июля 2011

Оказывается, ключевое различие между нашей системой разработки и производством - это требование сертификата.

Проблема заключается в том, что XMLHttpRequest.send () в версии Safari для iPad обрабатывает синхронный запрос в домене, защищенном сертификатами. Я не могу объяснить внутренности метода, но каким-то образом у него есть проблема, и он выдает исключение 101, полагая, что это - очевидно - междоменный запрос. Опять же, тот же запрос, сделанный асинхронно на том же сервере, защищенном сертификатами, работает просто отлично. Расстраивающий случай, и один без решения!

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