启用视图自定义模块会导致 Drupal 7 上的 Ajax HTTP 错误

Posted

技术标签:

【中文标题】启用视图自定义模块会导致 Drupal 7 上的 Ajax HTTP 错误【英文标题】:Enabling Views custom module causes an Ajax HTTP error on Drupal 7 【发布时间】:2013-02-05 04:02:43 【问题描述】:

我正在开发一个自定义模块,该模块将描述视图模块的外部表。在我的模块文件夹中,我有所需的 mymodule.views.inc 文件。然而,每当这个文件存在并且我的自定义模块被启用时,当我使用具有 Ajax 的站点功能时,Drupal 会不断地弹出 Ajax HTTP 错误(任何旋转的雏菊都会触发这个)。在显示 Ajax 错误之后,弹出窗口始终包含 mymodule.views.inc 中的模块代码。奇怪的是每次我加载首页时,mymodule.views.inc 中的 php 代码总是显示在首页顶部。

我在 SO 和其他网站上经常看到这个问题,但大多数时候它可以追溯到更新的 jquery.js 文件或 php.ini 设置,这将使脚本有更多时间运行。到目前为止,这些修复都没有奏效。我现在可以让它消失的唯一方法是禁用我的自定义模块,或者将 mymodule.views.inc 重命名为其他名称。

这是消息外观的示例(不是逐字复制,因为我无法从 Chrome 中的这些警报消息中复制)。

An AJAX HTTP error occurred.
HTTP Result Code: 200
Debugging information follows.
Path: /?q=admin/structure/views/view/viewiamtryingtocreate/preview/page/ajax
StatusText: parseerror
ResponseText: /*
* header file to my mymodule.views.inc
* file I wrote
*/

//more php code follows

//lots of unicode characters intermittently show up in my source code
\u003C\/div\u003E\n...

//source code continues with lots of unicode characters, not sure what's at the bottom because the alert box is bigger than my screen and I can't scroll on it

还有人知道会发生什么吗?

【问题讨论】:

你能告诉我们你的 mymodule.views.inc 【参考方案1】:

这个错误是由 drupalforfirebug 引起的,禁用 drupal for firebug 应该会有所帮助。否则这个patch 应该可以工作。

【讨论】:

我在find /var/www/mywebroot/ -iname drupalforfirebug.module 时没有看到这个模块。这是否包含在其他模块中?【参考方案2】:

找到了。语法错误隐藏在 mymodule.views.inc 的顶部。在开始 PHP 标记之前有一些奇怪的格式。不知道为什么 php --syntax-check mymodule.php 没有捕捉到它(我将 mymodule.views.inc 复制到 mymodule.php 以便我可以在其上运行语法检查器)。

【讨论】:

以上是关于启用视图自定义模块会导致 Drupal 7 上的 Ajax HTTP 错误的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Drupal 7 的视图中对自定义字段进行排序或过滤

自定义模板中的Drupal 7自定义表单

drupal 7 使用模块视图自定义行样式

Drupal 视图中的自定义排序

drupal - 如何在视图模块中为每种网格格式添加自定义 CSS?

Drupal 视图模块卡在我的自定义主题上