我的登录表单非常简单,带有“用户名” /“通过”输入字段和“登录”按钮。当用户单击“登录”时,我将fetch()请求发送到后端。好吧,如果用户名或密码输入不正确,后端就会以状态代码401响应客户端。
从字面上看,今天我发现所有基于WebKit的浏览器的最新版本(至少在MacOS下)通过接收状态401将显示带有两个输入(登录/通过)和两个按钮(取消/好)。受影响的是Google Chrome,Opera和Safari。 (Mozilla Firefox和MS Edge可以!)
最“有趣”的事情是Google Chrome 69还会冻结JavaScript的主线程,直到按下上述系统弹出窗口中的按钮之一。 (顺便说一句,Chrome 66并没有做到这一点)
目前,我仅找到一种解决方法:将后端的所有401状态更改为非标准内容,例如471 ...
所以我实际上一次有两个问题:
1)如果有人知道所描述问题的更好解决方案,将不胜感激,并在此先感谢
2)了解WebKit开发人员这样做的原因和意义将非常有趣