我有一个目录,其中包含必须保护的文件。通过标准 HTTP 基本身份验证(.htaccess、.htpasswd 等)进行保护。使用下面的代码,我可以获得受保护页面的内容,但没有其他内容(“会话/登录”立即过期)。我需要访问该页面并下载文件。如何使用 php(或 javascript/ajax)登录到保护区并停留在该页面上?
<?php
// HTTP authentication
$url = "http://localhost/protected_files/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, "login:password");
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
同样使用 jQuery ajax:
var username = $("input#username").val();
var password = $("input#password").val();
function make_base_auth(user, password) {
var hash = btoa(user + ':' + password);
return "Basic " + hash;
}
$.ajax
({
type: "GET",
url: "http://localhost/protected_files/",
headers: {
'Authorization' : make_base_auth(username, password)
},
success: function (data){
$('body').html(data);
}
});