2015-08-08 37 views
2

我正在加載使用HTTP基本訪問身份驗證需要用戶名/密碼的跨源腳本。如果HTTP基本身份驗證失敗,則中止加載腳本

我不關心用戶名/密碼的安全性。我的代碼:

<script src="http://user:[email protected]/script.js"></script> 

這在大多數情況下工作正常。但是,如果憑據不正確,將彈出一個驗證對話框。

我想中止腳本的加載,如果憑據是錯誤的,而不是將驗證對話框呈現給用戶。理想情況下,JavaScript函數也會觸發以提醒出現問題。

這是可能的,它將如何完成?

回答

0

我認爲這將落在服務器端的配置。

而是發送HTTP 401 Not AuthorizedWWW-Authenticate頭,服務器應該有不同的狀態碼,也許403 Forbidden

的問題是,當一個401發送到瀏覽器,在瀏覽器解釋,作爲一個登錄要求,提示用戶。如果它收到另一個錯誤狀態(即403),它將只是出錯(可以通過JavaScript函數捕獲)

+0

是的,但不幸的是我沒有控制服務器。我只是想知道是否有任何JavaScript可以使用,即使有點麻煩,也可以在沒有用戶點擊「取消」的情況下檢測「401」(或者只是任何錯誤)。 –

+0

您可以使用JavaScript來動態加載腳本,而不是使用腳本標記。然後你可以捕捉到401錯誤。如果你想這樣做,可以考慮'XMLHttpRequest'或者包含ajax js加載的庫。警告:依賴於您加載的腳本的腳本可能會失敗,因爲腳本標記順序不再保證異步加載。您應該在onsuccess回調中調用任何依賴腳本 – arcyqwerty