जैसा कि अन्य ने बताया है, ब्राउज़र के व्यवहार को बदलने का एकमात्र तरीका यह सुनिश्चित करना है कि प्रतिक्रिया में या तो 401 स्थिति कोड नहीं है या यदि यह है, तो WWW-Authenticate: Basic
हेडर शामिल नहीं है । चूंकि स्टेटस कोड बदलना बहुत अर्थपूर्ण और अवांछनीय नहीं है, WWW-Authenticate
हेडर को निकालने के लिए एक अच्छा तरीका है । यदि आप अपने वेब सर्वर एप्लिकेशन को संशोधित नहीं कर सकते हैं या नहीं करना चाहते हैं, तो आप इसे हमेशा अपाचे के माध्यम से सेवा या प्रॉक्सी कर सकते हैं (यदि आप अपाचे का उपयोग नहीं कर रहे हैं)।
डब्ल्यूडब्ल्यूडब्ल्यू-ऑथेंटिकेट हेडर को हटाने के लिए प्रतिक्रिया को फिर से लिखने के लिए अपाचे के लिए एक कॉन्फ़िगरेशन है IFF अनुरोध में हेडर शामिल है X-Requested-With: XMLHttpRequest
(जो डिफ़ॉल्ट रूप से JQuery / AngularJS जैसे प्रमुख जावास्क्रिप्ट फ्रेमवर्क द्वारा सेट किया गया है, आदि ... और प्रतिक्रिया में शामिल है) हेडर WWW-Authenticate: Basic
।
Apache 2.4 पर परीक्षण किया गया (सुनिश्चित नहीं है कि यह 2.2 के साथ काम करता है)। यह mod_headers
स्थापित किए जा रहे मॉड्यूल पर निर्भर करता है। (डेबियन / उबंटू पर, sudo a2enmod headers
और अपाचे को पुनरारंभ करें)
<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>