我在使用 MooTool 的 JSONP 调用 Drupal node.save 时遇到问题。这是一个例子。
这是我的要求:
回调 Request.JSONP.request_map.request_1
方法 node.save
sessid 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 不太熟悉,但我想我需要做的就是将字符串转回一个对象。我应该在哪里寻找任何想法,或者是否有现有补丁?