javascript - Sencha Touch AJAX 调用 MVC

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

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 模板参数相匹配的对象列表。即使那部分不匹配,我至少应该能够看到警报,对吧?

最佳答案

你可能是跨域请求,那么你必须使用JSONP。

并且使用 JSONP,使得无法从 Controller 使用 return Json(object)

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

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

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

关于javascript - Sencha Touch AJAX 调用 MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6163007/

相关文章:

javascript - 将字符串转换为 JSON 数组

javascript - javascript 中的 Odrered 配对函数

javascript - value 属性没有出现在 Angular ngForm 中

javascript - 将数据加载到控件中时,JQuery 和文档就绪会重复触发

ajax - 如何检查 jQuery.ajax() 请求头状态是否为 "304 Not Modified"?

c# - 如何使用 JSON.NET 进行反序列化?

javascript - json中的eval数据传入jquery

javascript - Nightmare Promises with for..loop api calls, waterfall & anti-pattern (Bluebird.js)

javascript - 处理 <select><option> 时 jQuery 在 Internet Explorer 11 中不起作用

javascript - 如何学习 primefaces javascript API?