Cakephp HTTP Option 请求问题


Cakephp HTTP Option request problems

处理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");