2011-12-27 11 views
2

私のアプリケーションのURLの間にJSONを投稿しようとしています。受信URLは、リクエストの本文にJSONが必要であり、リクエストの本文にJSONで応答します。問題は、Mootools Request.JSONを使用して本文にJSONを送信するように見えないことです。これは私が持っているものです。MooToolsを使用したRequest Body *内のPOST JSON *

BadValueError: Property name is required 

request.nameは、サーバーが私のJSONを取得していないことを意味しNoneを返していることを意味します

// 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エラーを返します。

HTTPClientを使用してbodyフィールドにJSON.encode(formObj)の出力を貼り付けると、望ましい結果が得られます。

+0

try、 body: "x =" + JSON.encode(obj) – sissonb

答えて

1

bodyはRequestのmootoolsプロパティとして有効ではありません。代わりにdata: blahを使用してください。データが空であるため、サーバー側で何も得られないのも不思議ではありません。

+0

前に、おそらく私は何か他のものを混乱させたが、私は「データ」は「身体」と同等ではないという結論を導いた。申し訳ありませんが、愚かな質問をしています。 –

+0

この「解決策」はJSONをポストしませんが、標準のPOSTリクエストを送信するだけです。 – LeeGee

+0

'Request.JSON'はJSONをポストしません。JSONを受け取ることを期待しています。要求は単純なGETになる可能性があります。 –

関連する問題