使用ajax处理www-authentication请求?

Posted

技术标签:

【中文标题】使用ajax处理www-authentication请求?【英文标题】:Handle www-authentication request using ajax? 【发布时间】:2010-10-22 00:51:43 【问题描述】:

是否可以使用 AJAX 将凭据传递给请求 www-authentication 的网络服务器?

我想登录一个使用 .NET Bsic www-authentication 的网站,并使用 ajax 传递凭据。使用浏览器访问服务器时,浏览器会通过身份验证/登录窗口提示用户。

html 标头包含以下内容:

WWW-Authenticate: Basic
realm="hosting.xp"
MicrosoftSharePointTeamServices: 6.0.2.6568
X-Powered-By: ASP.NET

我想通过从 ajax 对象调用它来访问“幕后”网站,但我不确定如何处理请求身份验证的 http 标头。

我希望 ajax 调用导致特定用户登录(cookie 集),以便用户稍后可以访问该站点并“已经”登录。

可以按照我在这里描述的方式完成吗?

【问题讨论】:

【参考方案1】:

您可以像这样在 URL 中传递用户名和密码:

http://username:password@example.com/secure

这是一个使用 jQuery 的示例:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
    $('a.logMeIn').click(function()
        $.get('http://username:password@example.com/secure', null, function(response) 
            alert(response);
        );
    );
);

</script>

<a href="#" class="logMeIn">Log me in!</a>

【讨论】:

如果密码中包含除字母数字字符以外的其他内容,则会出现问题...您将如何解决这个问题?【参考方案2】:

使用 http-authentication 不需要 cookie,凭据由浏览器保存,或者在您的初始请求的情况下,由您的 javascript 状态保存。

【讨论】:

以上是关于使用ajax处理www-authentication请求?的主要内容,如果未能解决你的问题,请参考以下文章

AJAX的使用及常见问题的处理(AJAX入门到熟练使用)

ajax的使用:例题ajax的数据处理

用React处理ajax

ajax请求处理

ajax同步异步

使用ajax处理www-authentication请求?