У меня возникают проблемы после переноса моего инструмента управления проектами на новый сервер. На странице списка проектов есть флажок, который при включении скрывает весь проект со статусом complete и записывает запись в таблицу конфигурации базы данных (HIDE_COMPLETE_PROJECTS), а затем перезагружает страницу списка проектов после успешной публикации сообщения AJAX. Однако после перемещения сайта на другой сервер изменения выполняются в файле hange_hide_completed_status.php. но страница с списком проектов не перезагружается, кажется, что никакой ответ не отправляется с сервера. Не уверен, что это имеет значение, но у моего старого сервера был php 5.2,17, у нового был установлен 5.4. Также версия jquery очень старая (1.4.4). Я думал, что у меня может быть проблема с сжатием, поэтому отключен mod_deflate на новом сервере, но это не помогло. Интересно, если я вызову php-файл change_hide_completed_status.php непосредственно со старого сайта, я получу непечатаемые символы и на новом сайте, firefox не отобразит страницу из-за ошибки кодирования содержимого. Я думаю, что есть проблема с конфигурацией сервера/типом контента, но я не могу приблизиться.Сообщение Ajax не удается после перемещения сервера
Вот код:
function changeStatus(checkboxStatus){
if (checkboxStatus.checked){
hide_status_value =1;
}else{
hide_status_value =0;
}
$.ajax({
type: 'POST',
data: {'hide_status':hide_status_value},
url: 'change_hide_completed_status.php',
cache:false,
success: function(response) {
window.location.reload(true);
}
});
}
<?php
include_once ("/var/www/sdtm/etc/config.php");
$status = $REQUEST_DATA['hide_status'];
$d = new PhPagaDbData;
$fields = array('HIDE_COMPLETE_PROJECTS' => $status);
$key = 'HIDE_COMPLETE_PROJECTS';
$fields = array('cfg_value' => $status);
$r = $d->update('config', $fields, 'cfg_key = ?', $key);
exit;
?>
HTTP ответ старый сервер:
POST /sdtm/change_hide_completed_status.php HTTP/1.1
Host: mccosh.de
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://mccosh.de/sdtm/projects.php
Content-Length: 13
Cookie: PHPSESSID=d2b013669f1268af1cf516e60ae20c75
Authorization: Basic c2VjcmV0OnNlY3JldA==
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
hide_status=0
HTTP/1.1 200 OK
Date: Tue, 30 Dec 2014 11:04:13 GMT
Server: Apache
X-Powered-By: PHP/5.2.17
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 220
Keep-Alive: timeout=5, max=8
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
HTTP ответ новый сервер:
http://192.168.148.180:12323/change_hide_completed_status.php
POST /change_hide_completed_status.php HTTP/1.1
Host: 192.168.148.180:12323
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://192.168.148.180:12323/projects.php
Content-Length: 13
Cookie: PHPSESSID=4pj4md762cm2n1efqm5kljuse2; shellInABox=942508454:111011010
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
hide_status=0
HTTP/1.1 200 OK
Date: Tue, 30 Dec 2014 10:39:16 GMT
Server: Apache/2.2.22 (Debian)
X-Powered-By: PHP/5.4.4-14+deb7u5
Content-Encoding: gzip
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 23
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
Какой код возвращает ваша страница PHP? У вас много изменений между PHP 5.2 и 5.4. – Debflav
Если я напрямую обращаюсь к файлу php на старом сайте: http://mccosh.de/sdtm/change_hide_completed_status.php?hide-status=0 В браузере я получаю непечатаемые символы: e 0Dw # ' ӸM ĩWU T N d K MY L- " r/cʑ ' , @ ! WAaQ0ӢPR @ "㺮 5WtG2q ~ Hq \ гс; 2k & B $ vj_ e ; { N Ȕ – user2564684
Новый сервер возвращает 23 байта содержимого, что это такое? Затем снова появляется «X-Powered-By: PHP/5.2.17», как это происходит? – Marek