Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中,是否有可靠的方法可以知道请求是否在Ajax上下文中?_Php_Ajax - Fatal编程技术网

在PHP中,是否有可靠的方法可以知道请求是否在Ajax上下文中?

在PHP中,是否有可靠的方法可以知道请求是否在Ajax上下文中?,php,ajax,Php,Ajax,我需要以不同的方式处理这两种情况,有好的解决方案吗?我可以想出两种方法来实现这一点: if ($_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest') { /* ajax request */ } 在AJAX端,您可以使用设置自定义HTTP头,然后使用检查PHP端是否存在该头,以指示请求是由AJAX客户端发出的。如果您的PHP脚本没有找到自定义标题,您可以认为它是非Ajax请求。 当您在代码中创建请求时,只需添加querystring变量

我需要以不同的方式处理这两种情况,有好的解决方案吗?

我可以想出两种方法来实现这一点:

if ($_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest') { /* ajax request */ }
  • 在AJAX端,您可以使用设置自定义HTTP头,然后使用检查PHP端是否存在该头,以指示请求是由AJAX客户端发出的。如果您的PHP脚本没有找到自定义标题,您可以认为它是非Ajax请求。

  • 当您在代码中创建请求时,只需添加querystring变量来指示请求的性质。例如,对于AJAX请求或非AJAX请求


它既可靠又标准。