2011-08-09 6 views
0

私のアプリケーションでは、私はFormPanelを持っています。これは私のWebサービスに投稿することになっています。Ext.form.FormPanelがnull値をポストしているのはなぜですか?

私のFormPanelは次のようにレイアウトされています。

var config = { 
    // Url for the Web Service - Note that the WebServiceURL MUST end with a trailing "/" 
    WebServiceUrl: 'http://webservice.example.com/' 
}; 

function WebService(controller, action) { 
    return(config.WebServiceUrl + controller + '/' + action); 
}; 

rpc.views.Contact.CommunicateCard = new Ext.form.FormPanel({ 
    items: [{ 
     xtype: 'fieldset', 
     id: 'loginFormSet', 
     title: '', 
     items: [ 
      { 
       xtype: 'emailfield', 
       placeHolder: 'Username', 
       name: 'Username', 
       id: 'Username', 
       required: true 
      }, { 
       xtype: 'passwordfield', 
       placeHolder: 'Password', 
       name: 'Password', 
       required: true 
      }, { 
       xtype: 'checkboxfield', 
       id: 'RememberMe', 
       name: 'RememberMe', 
       label: 'Save login?', 
       labelWidth: '40%' 
      }, 
      { 
       xtype: 'button', 
       text: 'Login', 
       ui: 'confirm', 
       style: 'margin:2%;', 
       handler: function() { 
        doLogin(); 
       } 
      } 
     ] 
    }] 
}); 


var doLogin = function() { 
    Ext.Ajax.request({ 
     url: WebService('GetInTouch', 'CommunicateCard'), 
     method: 'post', 
     params: { UserName: rpc.views.Contact.CommunicateCard.getValues().Username, Password: rpc.views.Contact.CommunicateCard.getValues().Password, RememberMe: Ext.getCmp('RememberMe').isChecked() } 
    }); 
}; 

問題は、私が押したときに「提出」とFiddler/Charlesにポストを見て、私は任意のフォーム値が表示されないということです。また、私のWebサービスがリクエストを受け取ると、フォーム値も受け取られません。

ここでチャールズ

OPTIONS/GetInTouch/CommunicateCard HTTP/1.1
ホストからのHTTPレスポンスです:webservice.example.com
リファラー:http://192.168.5.206/ アクセス制御リクエスト・メソッド:POSTは
原産地:http://192.168.5.206
AppleWebKit/534.24(GeckoのようなKHTML)Chrome/11.0.696.71 Safari/534.24
アクセス制御リクエスト・ヘッダー:X-要求-では、Content-Typeの
受け入れ:/
のAccept-エンコーディング:gzipでは、収縮、SDCH
を受け入れ-言語:EN-US、エン; qは= 0.8
のAccept-文字セットを:ISO-8859-1、UTF-8; Q = 0.7、*; Q = 0.3

私は
http://mhelpdesk.com/simple-login-form-using-asp-net-mvc-and-sencha-touch/ここから私の方向のいくつかを取るしようとしています


Chrixianの回答ごとに、次のコードも同じ結果で試しました。

rpc.views.Contact.CommunicateCard = new Ext.form.FormPanel({ 
    items: [{ 
     xtype: 'fieldset', 
     id: 'loginFormSet', 
     title: '', 
     items: [ 
      { 
       xtype: 'emailfield', 
       placeHolder: 'Username', 
       name: 'Username', 
       id: 'Username', 
       required: true 
      }, { 
       xtype: 'passwordfield', 
       placeHolder: 'Password', 
       name: 'Password', 
       required: true 
      }, { 
       xtype: 'checkboxfield', 
       id: 'RememberMe', 
       name: 'RememberMe', 
       label: 'Save login?', 
       labelWidth: '40%' 
      }, 
      { 
       xtype: 'button', 
       text: 'Login', 
       ui: 'confirm', 
       style: 'margin:2%;' 
      } 
     ], 
     submit: { 
      url: WebService('GetInTouch', 'CommunicateCard'), 
      waitMsg: 'submitting', 
      success: function(form, response, responseText) { }, 
      failure: function(form, response, responseText) { } 
     } 
    }] 
}); 

答えて

1

貼り付けたHTTPリクエストはPOSTではないため、HTTPメソッドの「OPTIONS」と表示されます。

FormPanelに間違った構文が何も表示されず、doLogin関数は実際にparamsで定義している3つの情報を投稿します...私はあなたが何を返すのか分かりませんあなたがその機能を投稿していないので、WebService('GetInTouch', 'CommunicateCard')のURL。また

、フォームを送信するためにExt.Ajaxを使用しては何も問題はありませんが、formpanelは、同じことを達成するためにExt.Ajaxへのショートカットを提供しています...

rpc.views.Contact.CommunicateCard.submit({ 
    url: 'someurl', 
    waitMsg: 'submitting', 
    success: function(form, response, responseText) { ... }, 
    failure: function(form, response, responseText) { ... } 
}); 

だから、あなたはそれを聞かせすることができます投稿にアイテムを追加するのは大変です。

+0

私は編集を投稿しました。 –

+0

[OK]を、ちょうどURLを返します..ああ..コードが座っているので、それはあなたがそれを行うことを期待しているはずです。私は私の答えに追加した.submit()メソッドを試すことができますが、もう一度Fiddlerを見てみましょう。なぜなら、POSTではなくOPTIONSリクエストのヘッダーを貼り付けたことに言及しているからです(これはAjaxのものです)。リクエストが生成するでしょう)私はOPTIONSリクエストを生成するものはわかりません - 私はFiddlerまたはCharlesを使用していないので、プロキシの結果かどうかはコメントできません。 – chrixian

+0

私の編集した質問では、私は '.submit()'関数を使っていますが、同じ結果を返しています。ここで何が起こっているのか分かりません。 –

関連する問題