我正在尝试创建一个登录表单,在其中将用户名和密码发布到服务器并获得响应以处理 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:
到底是怎么回事?我究竟做错了什么?我没有正确发布表单值吗?
谢谢!
/ 新人 :)