我需要以不同的方式处理这两种情况,是否有一个很好的解决方案?
答案 0 :(得分:6)
if ($_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest') { /* ajax request */ }
答案 1 :(得分:3)
我可以想到两种方法来实现这个目标:
在AJAX方面,您可以使用XMLHttpRequest.setRequestHeader()
设置自定义HTTP标头,然后使用getallheaders()
检查PHP端是否存在该标头,以指示请求是由一个AJAX客户端。如果您的php脚本找不到自定义标头,您可以将其视为非AJAX请求。
在代码中创建请求时,您可以简单地使用querystring变量来指示请求的性质。例如。 http://example.com/process?ajax=true表示AJAX请求,http://example.com/process?ajax=false表示非AJAX请求。