跨子域AJAX请求,CORS错误

时间:2014-05-03 15:05:53

标签: php ajax session login cors

$(document).ready(function(){
    $.ajaxSetup({
        xhrFields: {
           withCredentials: true
        },
        crossDomain: true
    });


    function user_login(username, password, rememberme){        
        var request =   $.post(
                            'http://api.example.com/user/login',
                            {
                                'username': username,
                                'password': password,
                                'rememberme': rememberme
                            },
                            'json'
                        );

        request.done(function(res){
            ...
        });

        request.fail(function(res){
            alert('Request failed. Please try again.');
        }); 
    }
});
<?php
    /* ALLOW CORS */

    $http_origin = $_SERVER['HTTP_ORIGIN']);
    $allowed_http_origins = array(  "http://other.example.com",
                                    "http://www.example.com",
                                    "http://player.example.com",
                                    "http://app.example.com",
                                    "http://example.com"
    );

    if(in_array($http_origin, $allowed_http_origins)){  
        header('Access-Control-Allow-Origin: '. $_SERVER['HTTP_ORIGIN']);
        header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
        header('Access-Control-Max-Age: 1000');
        header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
    }

    /* RETURN INFO */

    $return = array(
        'code' => 200,
        'text' => 'Succesfully logged in!'
    );

    echo json_encode($return);
?>

再次问好Stackoverflow,

在我目前的应用程序中,我想在一个自编的api上用AJAX登录用户。 这是当前的设置,但我仍然在控制台中收到错误:

  

XMLHttpRequest无法加载http://api.example.com/user/login。没有   请求中存在“Access-Control-Allow-Origin”标头   资源。因此,不允许原点“http://example.com”访问。

我该怎么做才能解决这个问题?问题是什么?

提前致谢。

0 个答案:

没有答案