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/