Drupal услуги XML-RPC достъп от javascript

Опитвам се да получа достъп до XML-RPC на моята локална инсталация на drupal от javascript. Ето кода:

$.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! въведете описание на изображението тук

Благодаря


person Amrit Bera    schedule 04.05.2011    source източник
comment
Покажете ни и раздела Публикуване - какви данни изпращате? От faultString предполагам, че данните са дошли във формат, който XML-RPC не различава... Можете ли да предоставите и някакъв код от XML-RPC процедура, където се вижда зареждането на POST данни?   -  person shadyyx    schedule 04.05.2011
comment
Добре, проблемът с метода .post() е, че той прави точно това, което се нарича - публикува данните на даден URL... Това означава, че на даден URL трябва да има скрипт, който слуша POST данни, хваща $_POST['method'] и $_POST['nid'] и прави нещо подобно: $method = $_POST['method']; $nid = $_POST['nid']; return $method($nid); или echo $method($nid);. Как изглежда скриптът тук sms2.com/services/xmlrpc???   -  person shadyyx    schedule 04.05.2011
comment
мммм... нямам представа :( Идва с модула на drupal (drupal.org/project/services) Препращам към горния код от groups.drupal.org/node/78093   -  person Amrit Bera    schedule 04.05.2011
comment
Хм, ако е ориентиран към Drupal XML-RPC, може би тогава ще е по-добре първо да опитате Drupal форумите... Това, което открих, е да го извиквате от PHP - така че можете да извикате свой собствен PHP скрипт с вашето AJAX извикване, което след това ще извика XML-RPC. Ето връзката: drupal.org/node/836116   -  person shadyyx    schedule 04.05.2011


Отговори (1)


Както е показано на екранната снимка на вашия раздел POST, вие не изпращате данни във формата, очакван за XML-RPC повикване. Така че, когато XML-RPC манипулаторът на услугите се опита да прочете вашите данни, той се проваля с върнатата грешка.

Същата грешка се обсъжда на http://groups.drupal.org/node/6823#comment-478604 с възможно решение.

Ако създавате само JavaScript клиент, не е необходимо да използвате XML-RPC бекенда за услуги. Services 3.x (бета) предоставя REST бекенд, поддържащ XML и JSON. За по-ранни версии един от JSON, JSON-RPC и REST бекенд трябва да бъдат по-лесен за работа.

Разбира се, можете също да използвате XML-RPC JavaScript библиотека (съвместим с jQuery).

person Pierre Buyle    schedule 05.05.2011
comment
Благодаря. Неговите XML-RPC неща, ако работят с връзка. Но искам да използвам JSON-RPC и да реализирам обаждания между домейни. Можете ли да ми помогнете с това? връзката има JSON, но не използва метода POST... - person Amrit Bera; 06.05.2011