如何在Sencha Touch中获取服务器JSON响应
How to get the server JSON response in Sencha Touch?
我在一个函数中创建了一个AJAX请求。然而,我不确定如何返回JSON结果-谁能告诉我如何?
function getData(arg1, arg2, arg3){
Ext.Ajax.request({
url: 'getData.php',
params: {
arg1: arg1,
arg2: arg2,
arg3: arg3
},
method: 'POST',
success: function(response, opts) {
var jsonData = Ext.util.JSON.decode(response.responseText);
console.log(jsonData); <-- Can see the result here!
},
failure: function(response, opts) {
console.log('server-side failure with status code ' + response.status);
}
});
return /jsonData/ <-- Here is the value I want?!
}
如果你在getData
函数中使用它,你的jsonData
不会得到任何信息的原因是-当成功回调返回时(记住,请求是异步的)- getData
范围已经退出。
你可以而且应该做的是定义一个handler函数:
function handleSuccess( response, opts )
{
var jsonData = Ext.util.JSON.decode(response.responseText);
// use jsonData here in whatever way you please
}
然后像这样定义你的getData
:
function getData(arg1, arg2, arg3){
Ext.Ajax.request({
url: 'getData.php',
params: {
arg1: arg1,
arg2: arg2,
arg3: arg3
},
method: 'POST',
success: handleSuccess,
failure: handleError
});
// Note the lack of return statement.
}
当然,你也可以对你的错误处理做同样的事情:
function handleError( response, opts )
{
console.log('server-side failure with status code ' + response.status);
}
没有办法让你做这样的事情(result
将获得服务器响应):
...
var result = getData('arg1', 'arg2', 'arg3');
...
可靠地调用AJAX请求。如果你考虑一下——如果上面的情况是可能的,它本质上就会变成一个同步的请求。
在包含服务器响应的jsonData
上进行计算的两种方法是:
1)在handleSuccess
函数中这样做,并相应地调整代码的其余部分(作为一个方面-您可以将处理程序函数作为参数传递给options.callback
和Ext.Ajax
)
相关文章:
- 使用c#中的邮件附件javascript在客户端机器上获取服务器端导出的crystal报告路径.下面的
- 使用PHP或Javascript获取服务器状态
- 尝试获取服务器响应
- 以特定时区的javascript获取服务器时间
- 使用javascript ASP.NET获取服务器控件上的子控件
- 可以´t从对象XMLHttpRequest获取服务器响应
- jQuery侦听器以获取服务器更新
- 如果我使用html表单(而不是ajax),则获取服务器的响应代码或返回值
- 是否可以将 Apache 配置为允许浏览器中的 JS 获取服务器目录内容
- 无法使用 asp.net 获取服务器端的javascript返回的国家/地区名称
- 如何使用 Web 表单(不是 MVC 或 asmx 页面)从 ajax Http POST 获取 c# 服务器端的复选框
- 如何获取服务器时间并每秒更新
- 内置JavaScript / Greasemonkey函数来获取服务器时间
- 如何在客户端获取服务器删除/更新收集项的 ID
- 通过 Java 脚本获取服务器控件属性值
- 如何获取服务器的当前日期时间
- 如何在客户端Node.js中获取服务器错误消息
- 如何使用javascript获取服务器时间
- 通过select2-x-editable获取服务器端php输出
- 如何使用javascript获取服务器上文件的日期