2011-05-04 53 views
1

我想從javascript訪問我的本地drupal安裝的XML-RPC。下面是代碼:Drupal服務從javascript的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文件設置的。

這是響應我得到:

enter image description here

誰能告訴我怎麼回事?我幾乎嘗試了所有可能的選項,但沒有用的..

POST標籤: enter image description here

其工作的罰款從XML-RPC管理界面! enter image description here

感謝

+0

向我們展示郵政選項卡 - 您發送了哪些數據?從'faultString'我猜數據是以XML-RPC無法區分的格式出現的......您能否提供一些來自XML-RPC過程的代碼,用於加載POST數據的可見性? – shadyyx 2011-05-04 16:02:29

+0

按照你的要求附上圖片.. – 2011-05-04 16:10:03

+0

好的,.post()方法的問題在於它完全按照它的名稱進行 - 它將數據發佈到給定的URL中......這意味着在給定的URL處必須是一個偵聽POST數據的腳本,抓取'$ _POST ['method']'和$ _POST ['nid']'並執行如下操作:'$ method = $ _POST ['method']; $ nid = $ _POST ['nid'];返回$方法($ nid);'或'echo $ method($ nid);'。這裏的腳本是什麼http://www.sms2.com/services/xmlrpc看起來像? – shadyyx 2011-05-04 16:18:00

回答

1

由於在您的文章標籤的屏幕截圖所示,你不張貼在預期的XML-RPC調用格式的數據。因此,當服務的XML-RPC處理程序嘗試讀取數據時,它會因返回的錯誤而失敗。

同樣的錯誤在http://groups.drupal.org/node/6823#comment-478604討論與可能的解決方案。

如果您只生成JavaScript客戶端,則不需要爲服務使用XML-RPC後端。服務3.x(測試版)提供了支持XML和JSON的REST後端。對於早期版本,0123',JSON-RPCREST後端之一應該更容易處理。

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

+0

謝謝。如果使用[link](http://code.google.com/p/json- xml-rpc /)。但是我想使用JSON-RPC並實現跨域調用。你能幫我解決這個問題嗎?[link](http://code.google.com/p/json-xml-rpc/) )有JSON,但它不使用POST方法... – 2011-05-06 04:19:36