【问题标题】:mod_pagespeed adds <head/> tag to responsesmod_pagespeed 将 <head/> 标签添加到响应中
【发布时间】:2017-01-02 07:27:59
【问题描述】:

我在 Apache 2.4 中有一个带有 mod_pagespeed 的简单 PHP 应用程序。

查看 PageSpeed 模块文档 (https://developers.google.com/speed/pagespeed/module/filter-head-add),它说如果遇到正文标记,则会在文档中添加一个 &lt;head/&gt; 标记。

问题是,我正在发出一个返回 HTML 表格行的 AJAX 请求,然后我将其附加到表格中。

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 请求吗?

【问题讨论】:

  • 我也有同样的问题,你解决了吗?

标签: php jquery ajax mod-pagespeed


【解决方案1】:

我认为您的响应具有 text/html 内容类型,因此 mod_pagespeed 假定它是缺少 head 标签的 HTML 文档。

尝试设置不同的内容类型(如text/plain):

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

或者像text/ajaxresponse这样完全虚构的东西

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

在普通浏览器中也将被视为纯文本。现在 mod_pagespeed 不再将您的响应视为完整的 HTML 文档,因此不再插入 head 标签。

afaik 不存在“Ajax 响应”的特殊内容类型标头,因为 Ajax 请求的内容类型不固定。如果您的响应是 JSON,则可以使用 application/json

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多