Междоменные проблемы на мобильном Safari на iPhone, iPod и iPad - PullRequest
0 голосов
/ 30 сентября 2011

У меня есть чат, созданный с помощью узла. Этот чат работает на порту 3000 сайта example.com. Я использую этот чат на странице того же домена, вызывая его с помощью вызова jjuery ajax. Итак, у меня есть чат, запущенный на example.com:3000, и веб-сайт, который включает этот чат, на example.com:80. Поскольку разные порты (даже в одном и том же домене) уже являются нарушением политики одного и того же источника, я включил в заголовки сервера своего узла «Access-Control-Allow-Origin»: «*», чтобы разрешить перекрестные вызовы в моем чате.

Поскольку чат, загруженный ajax, искал свои файлы js / css на example.com:80, я должен был указать пути к моим файлам js / css на example.com:3000 в абсолютных путях. Так что чат ищет свои файлы js / css с «http://example.com:3000/css/style.css"» и «http://example.com:3000/js/client.js".». Это хорошо работает, используя обычные браузеры (Safari, Firefox, Chrome и т. Д.) Для обоих, общайтесь в собственном примере и включены в example.com:80.

Однако, и это проблема, она не работает на любом мобильном Safari (iPhone, iPod, Ipad). Главная страница чата будет нормально загружаться при вызове ajax, но последующие файлы js / css не загружаются. Я не могу использовать относительные пути, так как файлы client.js и style.css находятся на example.com:3000, который является междоменным.

Есть ли еще какое-то место, где мне нужно установить настройку «Access-Control-Allow-Origin»? Или мне нужно что-то делать с путями? Или в jQuery есть какие-то настройки, которые мне нужно сделать, чтобы это работало? У меня нет идей, поскольку в мобильном Safari нет инструментов отладки, кроме сообщений об ошибках. Который я не получаю ни одного.

1 Ответ

0 голосов
/ 01 октября 2011

На самом деле я должен был использовать iframe, если бы хотел, чтобы встроенный чат мог извлекать свои собственные внутренние файлы.Это то, что я в итоге сделал.

...