Diğerlerinin de belirttiği gibi, tarayıcının davranışını değiştirmenin tek yolu, yanıtın bir 401 durum kodu içermediğinden veya içeriyorsa, WWW-Authenticate: Basic
başlığı içermediğinden emin olmaktır . Durum kodunu değiştirmek çok anlamsal ve istenmeyen bir durum olmadığından, iyi bir yaklaşım,WWW-Authenticate
başlığı . Web sunucusu uygulamanızı değiştiremiyorsanız veya değiştirmek istemiyorsanız, her zaman Apache aracılığıyla sunabilir veya proxy yapabilirsiniz (zaten Apache kullanmıyorsanız).
Burada, Apache'nin WWW-Authenticate üstbilgisini kaldırmak için yanıtı yeniden yazması için bir yapılandırma X-Requested-With: XMLHttpRequest
bulunmaktadır. başlık WWW-Authenticate: Basic
.
Apache 2.4 üzerinde test edilmiştir (2.2 ile çalışıp çalışmadığından emin değil). Bu, mod_headers
kurulmakta olan modüle bağlıdır. (Debian / Ubuntu'da sudo a2enmod headers
ve Apache'yi yeniden başlatın)
<Location />
# Make sure that if it is an XHR request,
# we don't send back basic authentication header.
# This is to prevent the browser from displaying a basic auth login dialog.
Header unset WWW-Authenticate "expr=req('X-Requested-With') == 'XMLHttpRequest' && resp('WWW-Authenticate') =~ /^Basic/"
</Location>