ASP.NET MVC中EasyUI的datagrid跨域调用实现代码


Posted in Javascript onMarch 14, 2012

最近项目中需要跨域调用其他项目的数据,其他项目也是使用的EasyUI的datagrid组件,开始以为直接在datagrid的url属性定义为其他项目的url地址即可,可是测试下发现的确是返回了json数据但是json数据提示“invalid label” 错误,网上搜索了下错误解决办法,参考 “JavaScript处理Json的invalid label错误解决办法“的方法利用datagrid的loadData方法加载并转换了json还是提示上述错误,感觉原因不在格式问题。

搜索了下JavaScript跨域调用的文章“JavaScript跨域访问问题解决方法”得到启发,发现原来是因为easyUI使用的是JQuery的异步方法加载数据,应该遵循JQuery的跨域访问规则,也就是上述文章中提到的url中需要加入jsoncallback=?回调函数参数,并且返回的json的格式必须修改为:回调函数名(json数据),而现在返回的数据只是json格式的数据没有回调函数名,自然提示格式错误,于是修改了ASP.NET MVC自定义的JsonResult类,具体如何编写自定义的JsonResult类见:自定义ASP.NET MVC JsonResult序列化结果,

代码如下:

public class CustomJsonResult:JsonResult 
{ 
public override void ExecuteResult(ControllerContext context) 
{ 
if (context == null) 
{ 
throw new ArgumentNullException("context"); 
} HttpResponseBase response = context.HttpContext.Response; 
if (!String.IsNullOrEmpty(ContentType)) 
{ 
response.ContentType = ContentType; 
} 
else 
{ 
response.ContentType = "application/json"; 
} 
if (ContentEncoding != null) 
{ 
response.ContentEncoding = ContentEncoding; 
} 
if (Data != null) 
{ 
#pragma warning disable 0618 
//跨域调用需要修改json格式jsoncallback 
if (context.HttpContext.Request.Params.AllKeys.Contains("jsoncallback")) 
{ 
String callback = context.HttpContext.Request.Params["jsoncallback"]; 
response.Write(callback+"("+JsonConvert.SerializeObject(Data)+")"); 
} 
else 
{ 
response.Write(JsonConvert.SerializeObject(Data)); 
} 
#pragma warning restore 0618 
} 
} 
}

EasyUI的datagrid的代码如下:
//datagrid 
$('#dg').datagrid({ 
url:'http://localhost:9000/ManagementSystem/ListCurrent?department=sss&jsoncallback=?', 
pageNumber: 1, 
pageSize: 20, 
pageList: [20, 40, 60, 80, 100], 
onDblClickRow: function(rowIndex) { 
edit(); 
} 
});

作者:mikel
出处:http://www.cnblogs.com/mikel/
Javascript 相关文章推荐
避免 showModalDialog 弹出新窗体的原因分析
May 31 Javascript
javascript 全等号运算符使用说明
May 31 Javascript
jquery js 获取时间差、时间格式具体代码
Jun 05 Javascript
jquery获取一个元素下面相同子元素的个数代码
Jul 31 Javascript
js实现创建删除html元素小结
Sep 30 Javascript
关于Vue.js一些问题和思考学习笔记(1)
Dec 02 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
Jan 19 Javascript
jQuery+CSS3实现点赞功能
Mar 13 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
Apr 11 Javascript
微信小程序实现搜索历史功能
Mar 26 Javascript
微信小程序嵌入腾讯视频源过程详解
Aug 08 Javascript
深入了解JS之作用域和闭包
Jun 16 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
Mar 14 #Javascript
javascript 进阶篇2 CSS XML学习
Mar 14 #Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
Mar 14 #Javascript
javascript 基础篇4 window对象,DOM
Mar 14 #Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
Mar 14 #Javascript
javascript 基础篇2 数据类型,语句,函数
Mar 14 #Javascript
javascript 基础篇1 什么是js 建立第一个js程序
Mar 14 #Javascript
You might like
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
PHP session会话的安全性分析
2011/09/08 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
学习jquery之一
2007/04/27 Javascript
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
2013/04/26 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
node.js cookie-parser 中间件介绍
2016/06/06 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
JS DOMReady事件的六种实现方法总结
2016/11/23 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
[36:19]2018DOTA2亚洲邀请赛 小组赛 A组加赛 Newbee vs LGD
2018/04/03 DOTA
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
详解python之配置日志的几种方式
2017/05/22 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
大专生自我鉴定范文
2013/10/01 职场文书
应用艺术专业个人的自我评价
2014/01/03 职场文书
幼儿园教师演讲稿
2014/05/06 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
假期安全教育广播稿
2014/10/04 职场文书
欢迎词范文
2015/01/27 职场文书
高考学习决心书
2015/02/04 职场文书
礼仪培训心得体会
2016/01/22 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书