如何在Ajax回调中获取控制器/模型/存储/视图

时间:2011-09-09 04:10:39

标签: ajax model-view-controller extjs

人,

我正在开发一个使用EXTJS MVC框架进行后端开发的项目。

现在我遇到了在Ajax回调中获取控制器/模型/存储的问题

以下是我的代码片段。我在控制器中调用Ajax。

Ext.Ajax.request({
    url: 'http://localhost:8080/gdltest/gdl_service.cgi',
    jsonData: jRequest,
    method: 'POST',     
    success: function (response,options) {
        var jsonData = Ext.JSON.decode(response.responseText);
        var jData = jsonData.results.data;

当我从响应中获取数据时,我想让控制器/模型/商店执行更多操作,但我不知道如何获取它们:(

非常感谢你的帮助:))

1 个答案:

答案 0 :(得分:2)

您在success功能中所做的是正确的。请检查您从服务器返回的响应。另外,url是否正确?通常会给出资源的相对路径,而不是绝对路径,正如您在此处给出的那样。请求是否到达服务器?如果是,我认为发回的数据存在问题。您还应该在开发期间使用safe选项。如果从服务器返回的Json格式不正确,则safe选项会抛出错误。来自文档:

decode( String json, [Boolean safe] ) 
  

safe:如果JSON是,则返回null或抛出异常   无效。

编辑:如果您想在成功回调中使用this运算符,请指定scope配置。示例如下:

 Ext.Ajax.request({
        url: 'http://localhost:8080/gdltest/gdl_service.cgi',
        jsonData: jRequest,
        method: 'POST',     
        success: function (response,options) {
            var jsonData = Ext.JSON.decode(response.responseText);
            var jData = jsonData.results.data;
       },
       scope : this //this will be the object form which the Ajax.request is called, and not Ajax.request itself or you can specify any other object you desire.