Sencha touch 表格提交isn';行不通
我正在使用Sencha Touch 2创建登录系统。我在提交表格时遇到问题。它没有从服务器获取响应数据。下面是我的代码 控制器:Sencha touch 表格提交isn';行不通,sencha-touch,extjs,sencha-touch-2,Sencha Touch,Extjs,Sencha Touch 2,我正在使用Sencha Touch 2创建登录系统。我在提交表格时遇到问题。它没有从服务器获取响应数据。下面是我的代码 控制器: Ext.define("MyMobile.controller.LoginController", { extend: "Ext.app.Controller", views: ['LoginView'], config: { refs: { loginForm: "#loginFormPanel" }, control: {
Ext.define("MyMobile.controller.LoginController", {
extend: "Ext.app.Controller",
views: ['LoginView'],
config: {
refs: {
loginForm: "#loginFormPanel"
},
control: {
'button[action=login]': {
tap: "authenticateUser"
}
}
},
authenticateUser: function (button) {
this.getLoginForm().submit({
url: 'login/authenticate',
method: 'POST',
success: function (form, result) {
debugger; //This block of code is not executing even after JSON response
var jsonoutput = Ext.decode(result); // json parsing
Ext.MessageBox.alert('Error', "Success");
},
failure: function (form, result) {//This block of code is not executing even after JSON response
Ext.MessageBox.alert('Error', "Invalid username/password");
}
});
}
});
查看
Ext.define("MyMobile.view.LoginView", {
extend: "Ext.form.FormPanel",
alias: "widget.mylogin",
id: 'loginFormPanel',
config: {
margin: '0 auto',
name: 'loginform',
frame: true,
url: 'login/Authenticate',
title: 'Login',
items: [
{
xtype: 'fieldset',
itemId: 'LoginFieldset',
margin: '10 auto 0 auto ',
title: '',
items: [
{
xtype: 'textfield',
label: 'User Name',
name: 'my-username',
required: true,
placeHolder: 'Username'
},
{
xtype: 'emailfield',
label: 'Email',
name: 'Email'
},
{
xtype: 'passwordfield',
label: 'Password',
name: 'my-password',
required: true,
placeHolder: 'Password'
}
]
},
{
xtype: 'button',
id: 'loginButton',
margin: '25 auto 0 auto ',
style: '',
maxWidth: 200,
ui: 'action',
width: '',
iconCls: 'user',
iconMask: true,
text: 'Login',
action: 'login'
}
]
}
});
App.JS
Ext.application({
name: "MyMobile",
appFolder: "myapp",
controllers: ["LoginController"],
views: ['LoginView'],
launch: function () {
var loginPanel= Ext.create('Ext.Panel', {
layout: 'fit',
items: [
{
xtype: 'mylogin'
}
]
});
Ext.Viewport.add(loginPanel);
}
});
有人能找出问题所在吗
下面是我从服务器得到的JSON响应
{“用户名”:“Murali”,“isAdmin”:true,“isAuthenticated”:true}
即使在得到JSON和200OK结果之后,我的代码表单提交函数也会进入失败回调。在failure callback functionfailure:function(form,result)中,我将result param作为我的JSON。但是为什么会失败呢?让您的服务器返回一个JSON响应,如下所示: 如果成功:
{
"success":true,
"UserName":"Murali",
"isAdmin":true,
"isAuthenticated":true
}
如果失败:
{
"success":false
}
阅读此处的更多信息:“下面是来自我的服务器的JSON响应。”,因此您得到了一个结果,或者这是您期望得到的结果?我得到了JSON响应和200 ok结果。但是表单submit的成功或失败回调不是executingHmm,如果使用
callback:function(){console.log('cb');}
,会发生什么?是的,我试过了。现在转到错误回调函数失败。但为什么当我得到200 Ok和JSON结果时会这样呢?我得到了我的JSON结果。但它会陷入失败的境地。我在服务器端使用ASP.NETMVC并返回JSON数据HI Sreenath。令人惊叹的!它很有魅力!谢谢是否可以保留作为响应头一部分发送的cookie值,并将其用于后续请求?就像这样,我们在正常的web上进行会话管理是的,当然可能,请阅读以下内容:或者,您可以从success
方法内部进行此操作。谢谢您的参考。我正在经历。还有一些困惑,比如如何在本地存储中存储cookie,以及如何在每个请求中检索并将其作为头参数发送。有什么例子吗?服务器通常使用Set Cookie
头来设置Cookie,您不必担心,看看这个:。即使在AJAX请求的情况下,该方法也可以工作