1

可能重复:
如何使用 Basic Auth 和 Jquery 和 Ajax

我有一个网站,如果我通过基本身份验证登录,效果很好。但是当我想下载一个 .pdf 文件(由服务器生成)时,我会弹出一个弹出窗口,其中包含我需要登录的信息......再次:/。

我怎样才能防止这种情况?或者如何通过链接发送基本身份验证信息?我看到了一些例子,比如:http://username:password@yourserver.com/filename.pdf。但这在 IE 中不起作用。

我怎样才能只用 html 和或 jQuery 来解决这个问题?

编辑:我通过网站中的表格登录,这很有效。但是,当我想在登录时下载 .pdf 文件时,我会弹出窗口。

<a href="http://yourserver.com/yourpdffile.pdf">Report1.pdf</a>
4

2 回答 2

3

基本身份验证是基于服务器的,HTML 和 jQuery 在这里都束手无策。

但是,在向此类页面发送 AJAX 请求之前,您可以提供这些详细信息。这是一个例子。

$.ajax({
    'url': 'http://yourdomain.com/action/',
    'beforeSend': function(xhr) {
        xhr.setRequestHeader("Authorization", "Basic " + encodeBase64(username + ":" + password) 
    },
    //.....
});
于 2012-11-09T11:43:08.350 回答
0

从理论上讲,您编写的方式是可能的(浏览器和服务器都应该支持)。不过,那是

  1. 出于安全考虑,这是一个坏主意(每个人都可以看到用户名和密码!)和
  2. 正如您所写,它不完全受支持。

我不知道为什么它在IE中不起作用,但最好不要使用它。

于 2012-11-09T11:46:33.937 回答