我在Cake应用程序中处理基本身份验证时遇到了一些问题。我已经到了我发送带有授权标头的ajax请求的地步,该标头已经获得了我的用户名和密码base64编码。
此请求正在发送给Cake,但是当它被发送时,它正在进行一些预检,因为我的Cake应用程序位于不同的主机上。当它执行此预检时,我的GET请求变为OPTION请求,并且我不确定如何在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);
}
});
});
});
答案 0 :(得分:0)
我设法通过包含一些响应标头来修复此问题,因为请求是跨域的:
$this->response->header('Access-Control-Allow-Origin', '*');
$this->response->header("Access-Control-Allow-Headers: Authorization");