【发布时间】:2016-02-24 10:03:27
【问题描述】:
你好, 我正在使用这个 php 代码来检查是否通过 ajax 发出请求:
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {echo 'is ajax';}
这段代码对我有效,直到今天大部分时间启动失败。 我用回显检查了 $_SERVER['HTTP_X_REQUESTED_WITH'] ,有时返回 XMLHttpRequest 大多数时间什么都不返回,有时返回这个 XMLHttpRequestOl 。
经过长时间的搜索,我找到了这个 answer,并使用该代码每次通过 ajax 请求测试时都会返回 xmlhttprequest。
谁能解释为什么会出现这种行为?
非常感谢,祝大家有个愉快的一天!
apache_request_headers() 的输出:
["Host"]=>
string(9) "example.com"
["Connection"]=>
string(10) "keep-alive"
["Accept"]=>
string(46) "application/json, text/javascript, */*; q=0.01"
["Origin"]=>
string(16) "http://example.com"
["X-Requested-With"]=>
string(14) "XMLHttpRequest"
["User-Agent"]=>
string(109) "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36"
["Referer"]=>
string(23) "http://example.com"
["Accept-Encoding"]=>
string(13) "gzip, deflate"
["Accept-Language"]=>
string(35) "ro-RO,ro;q=0.8,en-US;q=0.6,en;q=0.4"
["Cookie"]=>
string(36) "PHPSESSID=0c3vufj32s6v47o2oq38cj2rh2"
apache版本是
Server version: Apache/2.4.10 (Debian)
Server built: Nov 28 2015 14:05:48
Server's Module Magic Number: 20120211:37
【问题讨论】:
标签: javascript php ajax