纯JavaScript代码实现HTTP基本身份验证?

60

我在哪里可以找到纯JavaScript实现的HTTP基本认证客户端的参考代码,适用于AJAX?

如果能够提供可独立于JS工具包(如YUI)使用的代码或指针,则额外加分。不接受Java、Flash/Flex、PHP框架等解决方案。


3
您的意思是什么是纯JavaScript?您正在寻找一种使用JavaScript设置cookie而无需重新加载页面的方法吗? - Luca Matteis
4
基本认证并不使用 cookies,而是使用 HTTP 头部。 - Stijn de Witt
2个回答

61

XMLHttpRequest.open方法的五个参数版本允许您指定用户名和密码。(WHATWG规范

xhr.open(method, url, async, username, password)

24

有一篇非常好的由Paul James撰写的文章/教程。 我之前使用过,对我有效。

使用HTML表单进行HTTP身份验证

[...] XMLHTTPRequest可以为我们提交正确的HTTP身份验证标头。而不是调整表单提交的URL,我们可以在表单提交之前使用XMLHTTPRequest进行请求,提供输入的用户名和密码。

这将使用HTTP身份验证凭据设置浏览器,因此它还会将它们与我们的实际表单提交登录请求一起发送。


2
超出了我所期望的,但看起来是一种非常好的替代浏览器默认登录对话框的方式。 - system PAUSE
3
我尝试了这个方法并且有效,但我在Chrome控制台中看到以下内容: 包含嵌入凭据(例如 https://user:pass@host/)的子资源请求已被弃用,并将在M59(大约在2017年6月)被阻止。请参见https://www.chromestatus.com/feature/5669008342777856获取更多详情。是否还有其他方法? - Paintoshi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接