服务器如何接受AJAX,但是阻止了随着" X-Requested-With"头?

时间:2014-09-17 09:05:18

标签: ajax curl

我有一个名为“endpoint.php”的页面。

此端点必须由AJAX在同一域中调用。 而且,我有一个.htaccess文件来限制“Access-Control-Allow-Origin”。

Header set Access-Control-Allow-Origin "http://myserver.com"

但是,当我使用来自不同域的CURL时,使用“X-Requested-With:XMLHttpRequest”标头,端点仍然可访问,并使用来自同一域的ajax方法显示结果。

endpoint.php

// using codeigniter input class
if($this->input->is_ajax_request())
{
    echo "I'm AJAX";
}
else
{
    echo "NOT AJAX";
}

ajax.php

$.ajax({
    url: "endpoint.php",
    success: function(r){
        console.log(r);
        // display: I'm AJAX
    }
});

curl.php(位于不同的域名)

$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_URL => "http://myserver.com/endpoint.php",
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_HEADER => 0,
    CURLOPT_HTTPHEADER => array("X-Requested-With: XMLHttpRequest")
));
$resp = curl_exec($ch);
curl_close($ch);
echo $resp; // result: I'm AJAX

在这种情况下,如何接受AJAX请求但阻止CURL请求带有“X-Requested-With”标题。

0 个答案:

没有答案