LINUX.ORG.RU

XHR over HTTPS

 ,


0

1

У меня в веб-воркере есть XHR-запрос по относительному пути. Он работает в хромиуме через http и https, в фоксе через http, но не через https. В последнем случае приходит пустой ответ. В чём может быть проблема?

★★★★★

Вполне возможно, что баг. Те же вебсокеты были недоступны в воркерах до недавнего времени.

Deleted
()
Ответ на: комментарий от vurdalak

try catch и отправка в основной поток тебе в помощь.

Кроме того, workers могут использовать XMLHttpRequest для network I/O, при условии, что атрибуты responseXML и channel XMLHttpRequest всегда возвращают null.

MDN вот пишет ограничения.

Deleted
()
Ответ на: комментарий от Deleted

Так я пытаюсь достать responseText, а не responseXML.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

возможно: расширения, айфреймы, картинки и прочая туфта, разрушающая секурность соединения...

а где все хорошо?

anonymous
()
Ответ на: комментарий от anonymous

Всё хорошо на http и на хромиуме. Секурность соединения на нарушена, абсолютно все связи в пределах одного сервера.

Расширения сейчас потыкаю.

vurdalak ★★★★★
() автор топика

Так, теперь всё становится намного забавнее. У меня на одной странице делается два запроса: один с /url, другой с /url?param=true. Первый проходит, второ на https возвращает ничего. На http то же самое работает как часы. В хромиуме тоже работает идеально.

vurdalak ★★★★★
() автор топика
Ответ на: комментарий от vurdalak

Может он просто закэширован?

anonymous
()

Я ошибся в диагнозе. Возвращается не пустой ответ, а пустой список. Список должен формироваться в зависимости от сессии пользователя, что и происходит если выполнять тот же запрос из консоли браузера. Но из воркера — такое впечатление, что не отправляются на сервер куки.

При этом остальные симптомы такие же — проблема только в фоксе и только на https.

vurdalak ★★★★★
() автор топика

В общем починил. Совершенно случайно зашёл в настройки сайта, там есть вкладка permissions и в ней «set cookies» стояло в «allow» вместо «use default». Не знаю по какой причине, я такого не ставил.

Так вот если переставить в use default, всё работает. И если вернуть обратно в allow — тоже работает! Теперь я даже потерял возможность баг воспроизвести.

vurdalak ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.