2012-03-01 13 views
0

私は解決できないようで、オンラインでフォーラムを検索しても役に立つヒントは得られませんでした。JSONデータの「破棄」リクエスト

私はExt.Tree.Panelで最初に選択されたレコードを決定し、破棄要求を送信する次のコードを持っています。ただし、期待される名前/値のクエリ文字列の代わりにJSONオブジェクトが掲載されています。

var record = this.getClientUserTree().getSelectedRecord(); 

record.destroy({ 
    scope: this, 
    success: this.onDeleteUserSuccess, 
    failure: this.onDeleteUserFailure 
}); 

対応するモデルのコードとディスパッチされたリクエストのコードが含まれています。リクエストで

Ext.define('Admin.model.Client', { 
    extend: 'Ext.data.Model', 
    fields: ['id', 'name', 'company', 'address', 'postal_code', 'city', 'country', 'phone', 'fax', 'note'], 

    proxy: { 
     type: 'ajax', 
     api: { 
      read: 'clientajax', 
      destroy: 'clientajax/delete' 
     }, 
     reader: { 
      type: 'json', 
      root: 'results' 
     } 
    } 
}); 

投稿列:

{"id":"14","client":"5","username":"Testtest","firstName":"Genti","lastName":"Testing","role":"admin","superadmin":false} 

誰もが私が間違っているのを教えすることはできますか?

Ext.data.Model破壊する方法は、プロキシのdestroyメソッドを使用して、事前にあなたの助けのために Genti

+0

なぜこれが間違っていますか?あなたはJSONを期待する読者を設定し、投稿された文字列はJSON文字列のように見えます。 – David

+0

ええと、私が意味していることを理解したかどうかはわかりません。たぶん私の説明はあまり明確ではない。読者は、AJAXリクエストの応答がJSONであることを期待しています。これは正解であり、正しい方法です。しかし、上記のように破棄リクエストを発行すると、レコードデータ全体が破棄URL(上記のclientajax/delete)のJSONオブジェクトとしてPOSTされます。しかし、私はそれが通常の名前/値のクエリ文字列(application/x-www-form-urlencoded)として投稿されると期待していますが、この場合はそうではありません。私はどこが間違っているのか分かりたくない。 –

答えて

1

、ありがとうございました。

残念ながら、私はExtJS4 APIで非JSONまたはXMLプロキシを見つけたことはありません。私は絶対にしなければならないときに常に文字列値のパラメータを私のサーバに渡すために、Ext.data.proxy.ServerextraParamsプロパティを使用しました。

また、extending the proxy to accommodate what you needでも試してみることができますが、試したことはありません。

JSONやXMLを解析するためのライブラリがたくさんあることを覚えておいてください。サーバーにそれらを統合するのは難しくありません。そのルートも見てください。

+0

さらに検索をしていただきありがとうございます。投稿されたJSONをサーバー側で解析してしまいました。 –

関連する問題