Насколько я знаю (после того, как у меня возникла эта проблема), вы не сможете заставить Safari прекратить перехватывать 401
.Если эти выводы верны, единственным способом является творческое (читай: неправильное) использование другого кода ошибки, например 403
, или использование пользовательского (см. Ниже).
Конечно, это предполагает, чтоу вас есть доступ к изменению кода состояния, отправленного обратно из веб-службы (это не совсем понятно из вопроса, разрабатывали ли вы веб-службу тоже).
403
, конечно, действительно говорит: «Выуже аутентифицирован, но не авторизован для доступа к этому ресурсу ", что неверно (отсюда и" неправильное использование "), но по крайней мере у него нет побочных эффектов в известных мне браузерах.
400
иногда используется в качестве альтернативы, но так как этот («неправильный запрос») действительно предназначен для обозначения ошибки протокола HTTP, он может вызывать побочные эффекты (никогда не видел и не слышал о том, что это происходит, но потенциально он может вызвать чрезмерныйполезная попытка какого-либо будущего браузера или программного обеспечения для защиты от угона начать поиск и устранение неисправностей / диагностику).
412
- еще одна альтернатива, которую я видел («предварительное условие не выполнено»),но на самом деле это означает, что сервер не соответствовал предварительным условиям, установленным запросом .
Или вы можете создать свой собственный нестандартный4xx
ошибка - например, 461
- что разрешено (обратите внимание, что в твиттере есть пользовательский 420
код состояния, например)