0

我在使用 jquery 的 ajax 跨脚本请求时遇到了一些麻烦。我在一个名为 test.example.com 的子域中,我正在对 www.example.com/action 进行 ajax 调用,如下所示:

$.ajax({ 
url:"http://www.example.com/action",
type:"post", 
crossDomain:true,
dataType:"jsonp",
jsonp:"cross_domain_action",
xhrFields:{withCredentials:true},
success:function(data){}
});

问题是我不知道如何在 www.example.com/action 中测试请求是否是 ajax 请求。

我正在使用 CakePHP 1.3,并且有一个带有该功能的组件调用“request_handler.php”

function isAjax() {
    return env('HTTP_X_REQUESTED_WITH') === "XMLHttpRequest";
}

我发现请求中没有那个 HTTP 标头。

X-Requested-With    XMLHttpRequest

如果您有任何想法:) 谢谢

4

2 回答 2

0

您无需手动检查标题。Cake 1.3 在控制器的$this->params属性中提供了这些信息:

$this->params['isAjax']

如果当前请求是 ajax 调用,则存储 1,否则存储 0。在这里检查。.

于 2012-08-07T06:12:35.267 回答
0

好吧,这正是您用来测试它是否是和 ajax 请求的方法。我通常使用:

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) 
&& strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') 
{//this is an ajax request}
于 2012-08-06T11:05:02.797 回答