簡體   English   中英

嘗試通過sencha 2中的Ext.Ajax調用從服務器獲取響應

[英]Trying to get response from server with Ext.Ajax call in sencha 2

我試圖創建一個登錄表單,在其中將用戶名和密碼發布到服務器,並通過Ext.Ajax調用獲取響應以進行處理。 下面是我的代碼:

我的登錄表格

Ext.define('GS.view.Main', {
    extend: 'Ext.form.Panel',
    config: {
        fullscreen: true,
        id: 'register',
        frame:true,
        items: [{
            xtype: 'fieldset',
            items: [
                {
                    xtype: 'textfield',
                    name : 'userName',
                    itemId: 'userName',
                    placeHolder : 'Orgnisationsnummer',
                },
                {   
                    xtype: 'passwordfield',
                    name : 'password',
                    itemId: 'password',
                    placeHolder : 'Lösenord'
                }
            ]
        }, {
            xtype: 'button',
            text: 'Logga in',
            minHeight: '45px',
            action: 'submitFormAction'
        }]
    }
});

我的控制器

Ext.define('GS.controller.Controller', {
    extend : 'Ext.app.Controller',    
    config : {   
        control : {
            'button[action="submitFormAction"]' : {
                tap : 'submitForm'
            },
        }
    },
    submitForm : function() {
        var form = Ext.getCmp('register');
        Ext.Ajax.request({
            url : "URL HERE", 
            params : { username : form.getValues().userName, password: form.getValues().password  },
            method: 'POST',
            success: function ( result, request ) {
                console.log(result);
                var jsonData = Ext.decode(result.responseText);
                Ext.Msg.alert('Success', 'Data return from the server: '+ jsonData.msg); 
            },
            failure: function ( result, request) { 
                Ext.Msg.alert('Failed', result.responseText); 
            } 


        });
    }
});

我簡單的PHP腳本

<?php
$username = $_POST["userName"];
$password = $_POST["password"];



if(!empty($username) && !empty($password)) {
   $response = array("success" => 'true', 'id' => '1');
   echo json_encode($response);

} 

?>

問題是我從服務器收到此響應:

getAllResponseHeaders: function () {
getResponseHeader: function (header) {
request: Object
requestId: 1
responseText: ""
responseXML: null
status: 200
statusText: "OK"
__proto__: Object

Error: You're trying to decode an invalid JSON String:

到底是怎么回事? 我究竟做錯了什么? 我是否沒有正確發布表單值?

謝謝!

/ thenewb :)

您正在發布兩個參數:

  • “用戶名”
  • “密碼”

...但是在您的PHP腳本中,您正在尋找以下兩個:

  • “用戶名”(注意大寫N)
  • “密碼”

我想可能是問題所在,盡管我看不到您用PHP解碼任何內容,因此錯誤消息有點奇怪。

我的建議是從PHP回顯用戶名/密碼值,以確保正確發送/接收它們。 您還可以在JS代碼中設置一些斷點,以確保在發送AJAX請求之前值正確。 當我不知道您實際發送的是什么值時,很難說一切都很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM