PHP检测请求头是否含'X-Requested-With': 'fetch'异常求助
PHP无法检测到fetch-pjax发送的X-Requested-With请求头
我在StackOverflow上做了大量调研,翻了无数问答后还是没法定位这个代码问题,特意来求助。
我的需求是:检测请求是否由fetch API发起,若非则仅输出请求页面的部分内容。我知道原生fetch API不会主动发送请求头,但用fetch-pjax库能成功发送X-Requested-With: fetch请求头。同时我清楚存在请求头伪造风险,但我的网站没有用户凭证、Cookie这类敏感信息,所以暂时不考虑这个问题。
我的现有PHP代码如下:
$headers = getallheaders(); if(isset($headers['X-Requested-With']) && strtolower($headers['X-Requested-With']) == 'fetch') { echo 'requested by the fetch API'; } else { echo 'NOT requested by the fetch API'; }
问题现象:明明Chrome开发者工具里能看到请求已经发送了X-Requested-With: fetch头,但上面的代码始终输出“NOT requested by the fetch API”。如果我直接输出所有$headers的内容,是能正常看到这个请求头存在的。
我现在怀疑会不会是fetch请求发起时,动画插件lottie.js同时发起了若干非fetch的XHR请求,导致我的检测逻辑出了问题?
恳请各位大佬给些排查建议!
内容的提问来源于stack exchange,提问作者user1431398
相关产品推荐
相关产品推荐

