在
处理Cake应用程序中的基本身份验证时,我遇到了一些问题。我已经到了发送带有授权标头的 ajax 请求的地步,该请求已对我的用户名和密码 base64 进行编码。
此请求正在发送到 Cake,但是当它被发送时,它正在执行一些预检,因为我的 Cake 应用程序位于不同的主机上。当它这样做时,我的 GET 请求变成了一个选项请求,我不完全确定如何在 Cake 中处理这个问题。关于如何使其工作的任何想法?
这是我的 Ajax 请求:
$(document).ready(function() {
$('#ajaxRequest').click(function() {
var username = 'Useracct'
var password = 'password'
var tok = username + ':' + password;
var hash = Base64.encode(tok);
var authstring = "Basic " + hash;
$.ajax({
type: "GET",
dataType: "json",
data: {request: "ajax"},
url: "http://wurx/users/login",
beforeSend: function(xhr){
xhr.setRequestHeader("Authorization", authstring);
},
success: function(data){
console.log(data)
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr);
console.log(ajaxOptions);
}
});
});
});
我设法通过包含一些响应标头来解决此问题,因为请求是跨域的:
$this->response->header('Access-Control-Allow-Origin', '*');
$this->response->header("Access-Control-Allow-Headers: Authorization");