【问题标题】:Sencha Touch AJAX call to MVCSencha Touch AJAX 调用 MVC
【发布时间】:2011-05-28 16:49:19
【问题描述】:
Ext.util.JSONP.request({
                url: '/Home/GetMessagesMobile',
                callbackKey: 'callback',
                params: {
                    lat: geoip_latitude(),
                    lng: geoip_longitude(),
                    rad: 1,
                    sType: 0,
                    flow: 1,
                    lastId: 0,
                    lastRow: 0,
                    uniqueify: Math.random()
                },
                callback: function (data) {
                    var messages = data;
                    alert(messages);
                    home.update(messages); // refresh messages
                }
            });

我可以调试并点击 MVC 操作的断点,并确认该操作正在返回数据,但是,alert 永远不会显示,客户端也没有任何反应。看起来由于某种原因它没有进入callback

我需要让这个请求与众不同吗?我正在从操作返回 Json 结果。代码如下:

return Json(retval);

其中retval 是与sencha 代码中其他地方的html 模板参数匹配的对象列表。即使那部分不匹配,我至少应该能够看到警报吧?

【问题讨论】:

    标签: javascript ajax json asp.net-mvc-2 sencha-touch


    【解决方案1】:

    你可能是在做一个跨域请求,在这种情况下,你必须使用 JSONP。

    如果使用 JSONP,则无法从控制器中使用 return Json(object)

    检查API 中的 JSONP 类。有一个 ASP.NET 的示例。 您可以在 JavaScriptSerializer 类中使用将对象序列化为 JSON。 (其实Json方法就是在后面使用这个类)。

    这个想法是你必须返回这样的东西:

    var myJson = {success:true};
    someRandomMethod(myJson); // someRandomMethod is the callback parameter
    

    【讨论】:

      【解决方案2】:

      你正在使用JSONP,你应该使用Ext.util.JSON

      JSONP 以另一种方式工作,返回 JavaScript 而不是 JSON。

      【讨论】:

        【解决方案3】:

        我不经常使用 Sencha/Ext,所以我在这里可能有点离谱,但不应该是这样:

        Ext.Ajax.request({
          url: '/Home/GetMessagesMobile',
          params: {
            lat: geoip_latitude(),
            lng: geoip_longitude(),
            rad: 1,
            sType: 0,
            flow: 1,
            lastId: 0,
            lastRow: 0,
            uniqueify: Math.random()
          },
          success: function(data) {
            console.log(data);
          }
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-15
          • 1970-01-01
          相关资源
          最近更新 更多