大家好,我正在研究sencha应用程序,我需要通过单击按钮调用Web服务,我需要解析json。
我已经谷歌了很多,但没有得到任何一步一步的教程。我对sencha非常新,需要一步一步的教程来调用Web服务并在sencha touch中解析json。
我还尝试了以下代码:
我的功能:
getDetails: function(){
alert("Hi Welcome To Sencha");
Ext.Ajax.request({
method: 'GET',
url: 'http://www.aswaq.se/web_ajax_disp.php?fid=100&n=rt&p=rt',
params: { method: 'Helloworld', format: 'json' },
success: function (response, request) {
alert('Working!')
alert(response.responseText)
console.log('Response:-' + response.responseText)
},
failure: function (response, request) {
alert('Not working!')
console.log('Response Status:- ' + response.status)
}
});
}
帮助将不胜感激。
答案 0 :(得分:1)
对您的问题的简单直接回答是:
Ext.Ajax.request({
method: 'GET',
url: 'http://www.aswaq.se/web_ajax_disp.php?fid=100&n=rt&p=rt',
params: { method: 'Helloworld', format: 'json' },
success: function (response, request) {
alert('Working!')
var jsonData = Ext.util.JSON.decode(response.responseText);
},
failure: function (response, request) {
alert('Not working!')
console.log('Response Status:- ' + response.status)
}
});
但是,sencha touch 2和extjs指南建议使用stores: 它看起来像这样:
var myStore = Ext.create("Ext.data.Store", {
model: "User",
proxy: {
type: "ajax",
url : "/users.json",
reader: {
type: "json",
rootProperty: "users"
}
},
autoLoad: true
});
加载商店时,它会自动调用其中指定的正确URL并根据您指定的型号(型号:用户)加载数据。 您可以使用两种方法来加载商店: 设置autoLoad:true就像在示例中一样,让商店加载到你的应用程序中时加载 你想要的时候调用myStore.load()