PHP - проверить, содержат ли заголовки запроса / есть ли «'X-Requested-With': 'fetch'» - PullRequest
0 голосов
/ 30 мая 2020

Я действительно провел обширное исследование stackoverflow и нашел много вопросов и ответов, но до сих пор не могу понять, что не так с фрагментом кода.

Намерение: В принципе, я хочу чтобы проверить, сделан ли запрос API извлечения или нет. Если это не так, я хочу, чтобы PHP выводил только небольшую часть запрошенной страницы. Мне известно, что API-интерфейс fetch не отправляет заголовки изначально. Однако я использую библиотеку выборки, которая успешно отправляет 'X-Requested-With': 'fetch' (https://github.com/getdave/fetch-pjax). Мне также известно о возможной подмене заголовка et c. Это небольшой веб-сайт без каких-либо учетных данных пользователя / файлов cookie или аналогичных.

Код на данный момент:

  $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';
  }

Вывод: Это всегда повторяется это не вызов API выборки, хотя, согласно инструментам разработки Chrome, отправляется заголовок 'X-Requested-With': 'fetch'. Если я повторяю все заголовки $, это, конечно же, повторяет все заголовки. Может быть, есть еще пара XHR-запросов (не fetch API) от плагина анимации ( lott ie. js), сделанных одновременно с запросом fetch (см. скриншот ниже)?

enter image description here

Спасибо за любой совет!

...