我正在尝试从sencha touch调用部署在localhost(Tomcat)中的json Web服务,但是我收到了错误的请求响应,当我删除内容类型时,我收到不支持的类型。请帮助我提供从sencha touch消费json服务的确切代码。
这是代码,
Ext.Ajax.request({
url:'../service/login.json',
headers: {
"Content-Type": "application/json"
},
method:'POST',
params:{email:Ext.getCmp('login_field').getItems().items[0].getValue(),password:Ext.getCmp('login_field').getItems().items[1].getValue()},
success:function(res,req){
alert(res.reponseText);
var data = Ext.decode(res.responseText);
if(data.responseMessage){
Ext.getCmp('login_field').getItems().items[0].reset();
Ext.getCmp('login_field').getItems().items[1].reset();
if(!Ext.getCmp('MainPanel')){
Ext.Viewport.add({xtype: 'MainPanel'});
}
Ext.getCmp('MainPanel').show({type:'slideIn',direction:'left'});
Ext.getCmp('LoginPanel').hide();
}
else{
Ext.Msg.alert('Health Track','Invalid Login');
}
答案 0 :(得分:0)
以下是我在我的应用中使用的代码。请务必在浏览器或所选工具中使用网络检查器,以查看是否正在处理呼叫。
Ext.Ajax.request({
url: http://www.example.com,
withCredentials: false,
useDefaultXhrHeader: false,
params: {
login: foo@bar.baz,
password: *******
},
callback: this.handleLoginCallback,
scope:this
});
答案 1 :(得分:0)
这取决于您的服务所消耗的费用。产生。你必须指定'Content-Type':'application / json',如果你想要达到正确的终点(接受json)。如果你想获得JSOn响应,你必须发送“Accept”标题,否则你将获得默认类型(在大多数情况下是xml)。或者你也可以使用hal在url中传递“_type = json”或者在url中附加“.json”来获取json响应。