0

我正在开发一个用于 JavaScript 客户端的 RESTful API。所有 API 调用都经过身份验证。不幸的是,如果提供的凭据不正确,则会弹出可怕的浏览器提示。

现在,我知道没有办法在客户端抑制这种情况。幸运的是,我同时控制了客户端和 API。

我想尽可能地保持 API 的规范。所以我宁愿不将响应代码更改为 403。作为替代方案,我正在考虑允许客户端抑制 WWW-Authenticate 标头(通过请求中的自定义标头)。至少在最新版本的 Chrome 中,它似乎触发了提示,而不一定是 401 代码本身。

有人对此有任何见解吗?在其他浏览器中可靠吗?为什么我不应该走这条路?

谢谢,

4

1 回答 1

0

弹出窗口是一个401 Unauthorized答案,如果您使用的是 jQuery,您可以在error()回调中或在statusCodeajax 调用的属性中捕获它:

$.ajax({
    url : url,
    type : 'GET/POST/PUT/DELETE',
    data : { your data here },
    dataType : 'json/xml/html',
    statusCode : {

        200 : function(data, textStatus, jqXHR){

            // your logic here

        },                                  

        401 : function(jqXHR, textStatus, errorThrown){

            // your logic here

        }

    }

});

如果您需要对请求标头执行任何编辑,请beforeSend()在调用中使用回调,以便您可以在执行之前注入/删除内容。

于 2012-09-07T21:14:15.753 回答