【问题标题】:Drupal services XML-RPC access from javascript来自 javascript 的 Drupal 服务 XML-RPC 访问
【发布时间】:2011-08-18 15:45:55
【问题描述】:

我正在尝试从 javascript 访问我的本地 drupal 安装的 XML-RPC。代码如下:

$.ajax({
            type: "POST",
    url: "http://www.sms2.com/services/xmlrpc",
    dataType: "xml",
    data: {"method": "node.get",
                "nid": 1
            },
    success: function(msg) {
        //alert("data: " + msg.type );  
                    console.log("amrit");
    }
});

我的 drupal 索引文件位于 /home/dark/web_root/sms2/index.php 和 HTML 文件位于 /home/dark/web_root/sms2/test.html

'sms2' 是从 /etc/hosts 文件中设置的。

这是我得到的回复:

谁能告诉我发生了什么?我尝试了几乎所有可能的选项,但没有用..

POST 选项卡:

它在 XML-RPC 管理屏幕上工作正常!

谢谢

【问题讨论】:

  • 还向我们展示“发布”选项卡 - 您要发送哪些数据?从faultString 我猜数据的格式是 XML-RPC 无法区分的......您能否提供一些来自 XML-RPC 过程的代码,其中加载 POST 数据是可见的?
  • 好的,.post() 方法的问题在于它完全按照它的名称执行 - 它将数据发布到给定的 URL...这意味着在给定的 URL 必须有一个脚本监听 POST 数据,获取 $_POST['method']$_POST['nid'] 并执行以下操作:$method = $_POST['method']; $nid = $_POST['nid']; return $method($nid);echo $method($nid);sms2.com/services/xmlrpc这里的脚本是什么样的???
  • mmmm...我不知道:(它带有drupal模块(drupal.org/project/services)我指的是groups.drupal.org/node/78093上面的代码
  • 嗯,如果它是面向 Drupal 的 XML-RPC,那么首先尝试 Drupal 论坛会更好......我发现是从 PHP 调用它 - 所以你可以调用你自己的 PHP 脚本使用您的 AJAX 调用,然后调用 XML-RPC。这是链接:drupal.org/node/836116

标签: php jquery web-services drupal xml-rpc


【解决方案1】:

如您的 POST 选项卡的屏幕截图所示,您没有以 XML-RPC 调用所期望的格式发布数据。因此,当服务的 XML-RPC 处理程序尝试读取您的数据时,它会失败并返回错误。

http://groups.drupal.org/node/6823#comment-478604 讨论了相同的错误并提供了可能的解决方案。

如果您只构建 JavaScript 客户端,则不需要为服务使用 XML-RPC 后端。 Services 3.x(测试版)提供支持 XML 和 JSON 的 REST 后端。对于早期版本,JSONJSON-RPCREST 后端之一应该更易于使用。

当然,你也可以使用XML-RPC JavaScript library(兼容jQuery)。

【讨论】:

  • 谢谢。如果使用link,它的 XML-RPC 内容。但我想使用 JSON-RPC 并实现跨域调用。你能帮我解决这个问题吗? link 有 JSON,但它没有使用 POST 方法...
猜你喜欢
  • 1970-01-01
  • 2011-02-05
  • 2012-04-29
  • 2015-01-15
  • 2010-12-07
  • 1970-01-01
  • 2011-04-23
  • 2016-05-19
  • 1970-01-01
相关资源
最近更新 更多