Я написал веб-приложение на PHP, которое использует Ajax-запросы (сделанные с использованием YUI.util.Connect.asyncRequest).
В большинстве случаев это работает нормально. Запрос отправляется со значением X-Requested-With XMLHttpRequest . Мой код контроллера PHP использует apache_request_headers (), чтобы проверить, является ли входящий запрос Ajax или нет, и все работает хорошо.
Но не всегда. Периодически я получаю ситуацию, когда отправляется запрос Ajax (и Firebug подтверждает для меня, что заголовки в запросе включают X-Requested-With XMLHttpRequest), но apache_request_headers () не возвращает этот заголовок в своем списке. 1009 *
Вывод, когда я var_dump, apache_request_headers () выглядит следующим образом (обратите внимание на отсутствие X-
'Host' => string 'peterh.labs.example.com' (length=26)
'User-Agent' => string 'Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.3) Gecko/2008101315 Ubuntu/8.10 (intrepid) Firefox/3.0.3' (length=105)
'Accept' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' (length=63)
'Accept-Language' => string 'en-gb,en;q=0.5' (length=14)
'Accept-Encoding' => string 'gzip,deflate' (length=12)
'Accept-Charset' => string 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' (length=30)
'Keep-Alive' => string '300' (length=3)
'Connection' => string 'keep-alive' (length=10)
'Referer' => string 'http://peterh.labs.example.com/qmail/' (length=40)
'Cookie' => string 'WORKFLOW_SESSION=55f9aff2051746851de453c1f776ad10745354f6' (length=57)
'Pragma' => string 'no-cache' (length=8)
'Cache-Control' => string 'no-cache' (length=8)
Но Firebug говорит мне:
Request Headers:
Host peterh.labs.example.com
User-Agent Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.0.3) Gecko/2008101315 Ubuntu/8.10 (intrepid) Firefox/3.0.3
Accept text/html,application/xhtml+xml,application/xml;q=0.9,**;q=0.8
Accept-Language en-gb,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
X-Requested-With XMLHttpRequest
Referer http://peterh.labs.example.com/qmail/
Cookie WORKFLOW_SESSION=55f9aff2051746851de453c1f776ad10745354f6
Это несоответствие (по-видимому) прерывисто при выполнении того же кода. Но я не верю в «прерывистость», когда дело доходит до программного обеспечения! Помогите!