【问题标题】:Drupal node.save and JSONPDrupal node.save 和 JSONP
【发布时间】:2009-11-19 21:58:58
【问题描述】:

我在使用 MooTool 的 JSONP 调用 Drupal node.save 时遇到问题。这是一个例子。

这是我的要求:

回调 Request.JSONP.request_map.request_1
方法 node.save
塞西 123123123123123
node {"type":"blog","title":"New Title","body":"这是博客正文"}

这是我的结果

HTTP/1.0 500 内部服务器错误

我之前得到了这个工作,但我使用 AMFPHP 并且能够将对象发送到 drupal。我假设这与 Drupal 期望一个对象有关,但由于它是一个 GET 它被转换为一个字符串。有什么办法可以在不破解代码的情况下解决这个问题?

这是我的代码:

$('newBlogSubmit').addEvent('click', function()
{
    var node = {
        type : "blog",
        title:"New Title",
        body :"This is the blog body"
    }

    var string = JSON.encode(node);
    string.escapeRegExp()

    var sessID = _sessID;

    DrupalService.getInstance().node_save(string, sessID, drupal_handleBlogSubmit);
});

我的 Drupal 服务 JS 代码:

//NODE
DrupalService.prototype.node_save = function(node, sessid, callback){
    var dataObj = {
        method : "node.save",
        sessid : sessid,
        node : node
    }
    DrupalService.getInstance().request(dataObj, callback);
}


//SEND REQUEST AND CALLBACK FUNCTION

DrupalService.prototype.request = function(dataObject, callback){
    new JsonP('http://myDrupalSite.com/services/json', {data: dataObject,onComplete: callback}).request();
}

我正在尝试连接这些点,但对 Drupal 不太熟悉,但我想我需要做的就是将字符串转回一个对象。我应该在哪里寻找任何想法,或者是否有现有补丁?

【问题讨论】:

    标签: drupal jsonp drupal-services drupal-modules


    【解决方案1】:

    第一个问题可能是为什么您使用 mootools,因为 Drupal 带有 jQ​​uery,并且在不同的模块和 Drupal 核心本身中广泛使用它。

    无论如何,我不知道 mootools 所以无法帮助您,但是如果您的请求以内部服务器错误结束,那么您的 drupal 代码或 js 代码有问题。因此,即使我确切地知道您在做什么,如果不查看您的 @987654321@ 回调的 drupal 代码,我也无法告诉您问题所在。

    一般来说,您要确定的是:

    • 您发出一个 POST 请求,因为 drupal 将缓存 get,其语义是您将数据(节点)发布到服务器。
    • 您的数据应该作为 post 参数发送,这将使它们最终出现在 PHP $_POST 变量中
    • 您的回调应验证数据并采取相应措施,在数据完好无损时创建一个节点。您不需要会话 ID,因为脚本将具有与浏览器相同的会话。

    我已经详细回答了一个类似的问题,即更改字段而不是保存节点,但大部分工作仍然相同。您可以查看post,尽管这是使用 jQuery 而不是 Mootools。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      • 2011-11-02
      • 2014-12-12
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多