Cakephp HTTP Option请求问题

时间:2014-04-08 12:16:24

标签: php ajax cakephp authentication

我在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);
            }
        });
    });
});

1 个答案:

答案 0 :(得分:0)

我设法通过包含一些响应标头来修复此问题,因为请求是跨域的:

$this->response->header('Access-Control-Allow-Origin', '*');
$this->response->header("Access-Control-Allow-Headers: Authorization");