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 相关文章推荐
js 输出内容到新窗口具体实现代码
May 31 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
Jul 31 Javascript
控制台报错object is not a function的解决方法
Aug 24 Javascript
判断window.onload是否多次使用的方法
Sep 21 Javascript
详解jquery事件delegate()的使用方法
Jan 25 Javascript
js+html5实现侧滑页面效果
Jul 15 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
Nov 30 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
Jan 20 Javascript
vue动态子组件的两种实现方式
Sep 01 Javascript
Vue学习之组件用法实例详解
Jan 06 Javascript
基于javascript canvas实现五子棋游戏
Jul 08 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
Aug 07 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
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
php使用google地图应用实例
2014/12/31 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
JavaScript面向对象编程
2008/03/02 Javascript
JavaScript Event学习第六章 事件的访问
2010/02/07 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
javascript学习笔记(七)Ajax和Http状态码
2014/10/08 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
让div运动起来 js实现缓动效果
2017/07/06 Javascript
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
Python 多线程抓取图片效率对比
2016/02/27 Python
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
Python字典,函数,全局变量代码解析
2017/12/18 Python
python实现括号匹配的思路详解
2018/08/23 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
医科大学生毕业的自我评价分享
2013/11/12 职场文书
党校毕业个人总结
2015/02/28 职场文书
护士求职自荐信
2015/03/25 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
Python图片检索之以图搜图
2021/05/31 Python