【问题标题】:Sending POST request to a Drupal module file向 Drupal 模块文件发送 POST 请求
【发布时间】: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 处理。我现在已经用钩子菜单注册了一个路径,正在向它发送帖子请求。

标签: node.js drupal


【解决方案1】:

您在模块文件中创建一个menu

function mymodule_menu() {
    $items['post-link'] = array(
    'page callback' => 'mymodule_abc_view',
    );
    return $items;
}

然后通过 Node.js 在该菜单链接上发送发布请求。

YOURSITENAME/post-link?data1=abc&data2=def

然后在那些菜单回调函数上获取post数据来使用drupal_get_query_parameters()函数。

  function mymodule_abc_view() {
    // ...
    $parameters = drupal_get_query_parameters();
    print "<pre>";
    print_r($parameters);
    print "</pre>";
  }

这可能对你有帮助。

谢谢,

【讨论】:

    猜你喜欢
    • 2012-04-03
    • 2021-05-29
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 2015-09-20
    • 1970-01-01
    • 2019-01-13
    相关资源
    最近更新 更多