Последний WebKit нарушает процесс авторизации и блокирует основной поток JavaScript? - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть очень тривиальная форма входа в систему с полями ввода 'username' / 'pass' и кнопкой 'Login'.Когда пользователь нажимает «Логин», я отправляю запрос fetch () на сервер.Что ж, серверная часть отвечает клиенту кодом состояния 401, если был введен неправильный ввод имени пользователя или пароля.

Буквально сегодня я обнаружил, что все последние версии браузеров на основе WebKit (по крайней мере, под MacOS)При получении статуса 401 отобразится всплывающее окно системы с двумя входами (логин / пароль) и двумя кнопками (Отмена / ОК).Затронуты Google Chrome, Opera и Safari.(Mozilla Firefox и MS Edge в порядке!)

Самое «забавное» - это то, что Google Chrome 69 дополнительно останавливает основной поток JavaScript до тех пор, пока не будет нажата одна из кнопок в упомянутом выше всплывающем окне системы.(Кстати, Chrome 66 ничего подобного не делает)

Пока я нашел только один обходной путь: изменил все 401 статусов на бэкенде на что-то нестандартное, например 471 ...

Так что я на самом делезадайте сразу два вопроса:

1) если кто-то знает лучшее решение описанной проблемы, оно будет высоко оценено и заранее большое спасибо

2) было бы очень интересно узнать, почемуи что разработчики WebKit сделали так

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