У меня есть простое приложение PHP с mod_pagespeed в Apache 2.4.
Просмотр документации модуля PageSpeed (https://developers.google.com/speed/pagespeed/module/filter-head-add) это говорит, что это добавляет <head/>
тег к документу, если он встречает тег body.
Проблема в том, что я делаю AJAX-запрос, который возвращает строку таблицы HTML, которую затем добавляю в таблицу.
Ответ до mod_pagespeed был:
<tr><td>Data1</td><td>Data2</td></tr>
Я мог бы просто сделать:
$('#myTable > tbody:last-child').append(data);
И это будет работать нормально.
Теперь ответ:
<head/><tr><td>Data1</td><td>Data2</td></tr>
И это ломается.
У меня вопрос, происходит ли это все время? Нужно ли удалять директиву add_head? Есть ли другой способ сообщить mod_pagespeed, что это AJAX-запрос?
Я думаю, что ваш ответ имеет тип содержимого text / html, поэтому mod_pagespeed предполагает, что это HTML-документ с отсутствующим тегом head.
Попробуйте установить другой тип контента (например, text/plain
):
header("Content-Type: text/plain");
или что-то готовое как text/ajaxresponse
header("Content-Type: text/ajaxresponse");
который будет рассматриваться как обычный текст в обычных браузерах. Теперь mod_pagespeed больше не рассматривает ваш ответ как полный HTML-документ, поэтому тег head больше не будет вставлен.
Специальный заголовок типа контента для «ответа Ajax» не существует, так как тип контента для запроса Ajax не является фиксированным. Если ваш ответ будет JSON, application/json
может быть использован.
Других решений пока нет …