Drupal node.save和JSONP

Drupal node.save和JSONP,drupal,jsonp,drupal-services,drupal-modules,Drupal,Jsonp,Drupal Services,Drupal Modules,我在使用MooTool的JSONP调用Drupal node.save时遇到问题。这里有一个例子 这是我的要求: 回调Request.JSONP.Request_map.Request_1 方法node.save 会话123123 节点{type:blog,title:New title,body:This is the blog body} 这是我的结果 HTTP/1.0 500内部服务器错误 我以前就做过这个,但我使用AMFPHP并能够将对象发送到drupal。我假设这与Drupal期望一个

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

这是我的要求:

回调Request.JSONP.Request_map.Request_1 方法node.save 会话123123 节点{type:blog,title:New title,body:This is the blog 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不太熟悉,但我想我需要做的就是将字符串变回一个对象。有什么想法我应该去寻找,或者是否有一个现有的补丁吗?

第一个问题可能是为什么要使用mootools,因为Drupal附带了jQuery,并在不同的模块和Drupal核心本身中广泛使用它

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

通常,您要确保的是:

您发出POST请求,因为drupal将缓存get,其语义是将数据(节点)发布到服务器。 您的数据应该作为post参数发送,这将使它们最终出现在PHP$\u post变量中 回调应该验证数据并采取相应的行动,在数据完整时创建一个节点。您不需要会话id,因为脚本将具有与浏览器相同的会话。 我已经详细地回答了一个类似的问题,关于更改字段而不是保存节点,但大部分工作仍然是一样的。您可以查看,尽管这是使用jQuery而不是Mootools实现的