2011-12-27 174 views
2

我想在我的應用程序中的URL之間發佈JSON。接收URL需要請求主體中的JSON,並在請求主體中以JSON響應。問題是我似乎無法使用Mootools Request.JSON在身體中發送JSON。這是我有:POST JSON *在請求正文*使用MooTools

// formObj is an object constructed from a form 
var request = new Request.JSON({ 
    url: "/api/object.new", 
    urlEncoded: false, 
    onRequest: function(){ 
     // swap submit button with spinner 
    }, 
    onComplete: function(jsonObj) { 
     // work with returned JSON 
    }, 
    body: JSON.encode(formObj) 
}); 
request.setHeader("Content-Type", "application/json"); 
request.post(); 

服務器返回500錯誤:

BadValueError: Property name is required 

這意味着request.name正在恢復None這意味着該服務器沒有得到我的JSON。

使用HTTPClient將JSON.encode(formObj)的輸出粘貼到正文字段中可生成所需的結果。

+0

嘗試, 正文:「x =」+ JSON.encode(obj) – sissonb

回答

1

body不是Request的有效mootools屬性。改爲使用data: blah。因爲它站立,數據是空的,所以難怪你在服務器端沒有得到任何東西...

+0

無論出於何種原因'data' does not work之前,也許我搞砸了其他的東西,但我得出了'數據'不等同於'body'的結論。對不起,問一個愚蠢的問題。 –

+0

此「解決方案」不會發布JSON,但會發送標準的POST請求。 – LeeGee

+0

'Request.JSON'不發佈JSON,它期望接收JSON作爲回報,請求可能是一個簡單的GET。 –