ユーザー名とパスワードをサーバーに投稿し、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:
何が起こっている?私は何を間違っていますか?フォームの値を正しく投稿していませんか?
ありがとう!
/新人:)