2015-08-21 4 views
4

У меня есть простое PHP-приложение с mod_pagespeed в Apache 2.4.mod_pagespeed добавляет <head/> тег к ответам

В документации по модулю PageSpeed ​​(https://developers.google.com/speed/pagespeed/module/filter-head-add) говорится, что это добавляет тег <head/> к документу, если он встречает тег тела.

Проблема заключается в том, что я делаю запрос 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?

+0

У меня такая же проблема, вы ее решили? – Radek

ответ

0

Я думаю, что ваш ответ имеет тип содержимого text/html, поэтому mod_pagespeed предполагает, что это HTML-документ с отсутствующим заголовком.

Попробуйте установить другой тип контента (например, text/plain):

header("Content-Type: text/plain"); 

или что-то полное выдуманные как text/ajaxresponse

header("Content-Type: text/ajaxresponse"); 

, который будет рассматриваться также как обычный текст в обычных браузерах. Теперь mod_pagespeed больше не обрабатывает ваш ответ как полный HTML-документ, поэтому главный тег больше не будет вставлен.

Специальный заголовок типа контента для «Ajax response» не существует afaik, так как тип содержимого для запроса Ajax не является фиксированным. Если ваш ответ будет JSON, можно использовать application/json.