По какой-то причине это не работает:
$.ajax({
url: "News.html",
cache: false,
}).done(function(data) {
$("#content").load(data);
});
Это дает мне:
GET http://127.0.0.1/News.html 404 (Not Found)
Но по какой-то причине открытие этого URL вручную (копирование вставить URL) работает просто отлично.
И я думал, что это как-то связано с кешем браузера, поэтому я добавил параметр cache: false
в функцию ajax, но даже тогда.. argh..
Также он показывает не как запрошенный URL-адрес в моем файле access.log
..
Для информации, я думаю, я запускаю:
- Lighttpd
- php как fast-cgi через localhost: порт
- mapped.html = > .php
- Запуск OpenBSD 5.3
и без комментирования (в /etc/php.ini
):
- cgi.fix_pathinfo = 1
также:
# ls *.html
News.html index.html
И вот заголовки запроса для News.html
:
Request URL:http://127.0.0.1/News.html
Request Method:GET
Status Code:404 Not Found
Заголовок запроса
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Host:127.0.0.1
Referer:http://127.0.0.1/index.php
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36
X-Requested-With:XMLHttpRequest
Заголовки ответов
Content-type:text/html
Date:Tue, 16 Jul 2013 21:55:05 GMT
Server:lighttpd/1.4.32
Transfer-Encoding:chunked
X-Powered-By:PHP/5.3.21
Checkpoint
Заключение из комментариев пока что это может быть не проблема jQuery.
Учитывая, что сервер отвечает на все данные (я проверил необработанные данные), и он содержит все, но ответ заголовок говорит 404
.
Значение, данные найдены, но заголовок говорит 404... это странно, если не сказать больше.
скручивание
curl 'http://127.0.0.1/News.html' -H 'Accept-Encoding: gzip,deflate,sdch' -H 'Host: 127.0.0.1' -H 'Accept-Language: en-US,en;q=0.8' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36' -H 'Accept: */*' -H 'Referer: http://127.0.0.1/' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' -H 'Cache-Control: max-age=0' --compressed
Here you'll soon find a facebook feed, among other things :)
Тест Zerkms
# echo "wham bam" > zerkms_doesnt_believe.html
#
Файлы конфигурации
Журналы ошибок и что не
тест cURL
Ручной тест FastCGI через клиента Python:
# python fcgi_app.py
{'FCGI_MAX_CONNS': '1', 'FCGI_MPXS_CONNS': '0', 'FCGI_MAX_REQS': '1'}
После некоторого возиться, я понял, как работает протокол FastCGI, и я нашел клиента, который соответствовал моим потребностям, достаточно смешно, что он соответствовал имени моего script, поэтому здесь вывод:
# python fcgi_app.py
('404 Not Found', [('x-powered-by', 'PHP/5.3.21'), ('content-type', 'text/html')], '<html>\n\t<head>\n\t\t<title>test php</title>\n\t</head>\n<body>\nChecking</body>\n</html>', '')
Даю мне вывод, что это на самом деле проблема с PHP (даже если я ненавидел на lighttpd за то, что не соблюдал код 200 php, мне нужно ответить.. И для этого мне жаль.Если пойти bash a немного на PHP и посмотреть, поможет ли мне прийти к выводу)
Временное решение
В этом случае проблема будет решена в верхней части вашей .php-страницы. Обратите внимание, что это обходное решение, оно будет работать, но это не долгое время.
<?php
header("HTTP/1.0 200 Found");
?>