用php定义ajax调用的最佳方法
我使用angular和PHP作为前端和后端,现在我想检测是否使用Ajax请求调用某个PHP文件 如果我在做,这个用php定义ajax调用的最佳方法,php,angularjs,ajax,Php,Angularjs,Ajax,我使用angular和PHP作为前端和后端,现在我想检测是否使用Ajax请求调用某个PHP文件 如果我在做,这个 app.controller('LoginController',function($scope,$http){ $scope.loginuser = function() { console.log($scope.username+" "+$scope.userpwd); $http.post("user/login") .success(function
app.controller('LoginController',function($scope,$http){
$scope.loginuser = function() {
console.log($scope.username+" "+$scope.userpwd);
$http.post("user/login")
.success(function (data, status, headers) {
console.log(data);
//$scope.nowplaying=data;
}).error(function (data, status, header) {
//code to handel error
});
}
});
我有很多东西要检测Ajax调用,比如
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) {
// this is ajax request, do something
}
但我不知道为什么这对我不起作用,因为当我打印$\u服务器
数组时,我看不到HTTP\u X\u请求的\u
这是我得到的输出
那么,有人能给我一些提示或者告诉我在php中检测ajax的方法吗
PS:我正在附加图像,以显示我在responce中没有使用
获取HTTP\u X\u REQUESTED\u打印所有值$\u服务器变量,并检查HTTP\u X\u REQUESTED\u是否存在
某些服务器变量依赖于浏览器/代理默认情况下,不发送“X-request-With”供使用“X-request-With”您需要配置$httpProvider
$httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest';
或者在php上检查's'Content Type'是否为'application/json'您可以借助
$\u SERVER
变量来检测它
使用print_r($_SERVER)可以清楚地看到它,当您使用ajax请求页面时,您可以在$_SERVER
变量下看到HTTP_X_REQUESTED_和
参数
<?php
echo '<pre>';
print_r($_SERVER);
?>
图像中的输出是打印的结果($服务器)图像中的输出是打印的结果($服务器)是的,但我告诉过使用选项您可以很容易找到它,我的主要观点是覆盖$服务器['HTTP\u X\u REQUESTED\u with']选项,谢谢您完美的回答。
if ( isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
$_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
echo 'Ajax call';
} else {
echo 'Normal Call';
}