2015-08-08 50 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