2011-10-21 6 views
0

私Ext.form.Panelは、サーバーからのXML応答を「食べる」必要がありますが、ExtJSには、これは送信ボタン上のハンドラであるどのように私は適切にXMLのresponeを管理するために、Ext.form.panelから提出を設定することができますか?

uncaught exception: You're trying to decode an invalid JSON String: 
< ?xml version="1.0" encoding="UTF-8" standalone="yes"?>< root><user>admin< /user>< roles>Administrator< /roles">"< roles>Operator< /roles>< /root>" 

上げる:

var form = this.up('form').getForm(); 
if (form.isValid()) { 
    form.submit({ 
     success: function(form, request) { 
      console.log("OK") 
      //Ext.Msg.alert('Success', action.result.msg); 
     }, 
     failure: function(form, request) { 
      console.log("KO") 
      //Ext.Msg.alert('Failed', action.result.msg); 
     } 
    }); 

私が間違っているのか?

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

答えて

0

フォームにはJSON形式の回答が必要で、XMLデータを処理できません。サーバーレスポンスをJSONに変更するか、フォームフィールドにパラメータとしてAjaxリクエストを使用する必要があります。

+0

おかげで、私は以来、どこかのオプションを設定することができ期待し Ext.form.PanelはAjaxリクエストを使用します。 Ajaxリクエストを使用します – Shivetto

+0

mwrfと同様に、リーダーを「Ext.data.reader.Xml」に設定してXMLデータを受け取るように設定できます。 – suknic

1

フォームにxmlを送信できます。ここに完全な例があります

reader : Ext.create('Ext.data.reader.Xml', { 
     model: 'example.contact', 
     record : 'contact', 
     successProperty: '@success' 
    }), 

あなたはこのようなXMLリーダーを使用して、フォームを設定する必要が http://dev.sencha.com/deploy/ext-4.0.0/examples/form/xml-form.html

+0

'submit'アクションではなく 'load'アクションを実行すると、Ext.form.Panelリーダーがデータの読み取りに使用されます。 – Shivetto

+0

サーバから戻ってくるものを消費するようにXMLリーダーを設定できます。必要に応じてレスポンスを消費するように2番目のXMLリーダーを設定します。ロードアクションだけではありません。 – mwrf

+0

ありがとうございます – Shivetto

関連する問題