【发布时间】:2023-04-05 06:11:01
【问题描述】:
我正在尝试从 node.js 向 Drupal .module 文件发送发布请求。我的问题是,在发出请求时,Apache 永远不会将模块文件作为 php 执行,因此我没有从 php 获得响应,而是将文字代码(在 .module 文件中)作为文本字符串获取。
我尝试通过将以下内容放入 .htaccess 中来启用 .module 以作为 php 执行(不确定安全隐患):
Addhandler application/x-httpd-php .module
(以及我能找到的该命令的几乎所有其他组合)
但没有运气。
我知道 node.js 发送的 post 请求非常好,因为它在发送到同一服务器上的 .php 文件时可以工作。我只是无法让它在 Drupal 模块中工作。我希望将它发送到 Drupal 模块,因为我想利用 Drupal 的 API(将对 drupal 用户表进行大量修改)。
如何以编程方式从节点向drupal 模块发送发布请求并读取其响应?我知道如何将它发送到一个简单的 .php 文件,但不知道如何发送到 drupal 模块。
【问题讨论】:
-
向我们展示您尝试执行的代码。您已经在一个完全正常工作的 drupal 站点中获得了该模块,不是吗?什么版本的 Drupal?
-
Drupal v.7。我试图执行的代码只是返回 post 请求: echo json_encode($_POST);
-
这令人困惑。您将发帖请求发送到哪里?您需要您的模块设置一个路径(hook_menu),然后执行您的函数并返回您的响应。在问题中发布您的模块代码
-
我将发布请求直接发送到模块文件(.module 文件)。我以前听过这个答案,但还没有听到解释。如何将 POST 请求发送到 drupal,然后将其发送到模块并执行一些代码?这就是我想要完成的全部。
-
我想我明白了。我的问题是我不明白发布请求在 Drupal 中被视为路径,因此应该由 hook_menu 处理。我现在已经用钩子菜单注册了一个路径,正在向它发送帖子请求。