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 相关文章推荐
javascript 一段左右两边随屏滚动的代码
Jun 18 Javascript
Dojo 学习笔记入门篇 First Dojo Example
Nov 15 Javascript
基于JQuery制作的产品广告效果
Dec 08 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
Jul 04 Javascript
node.js中watch机制详解
Nov 17 Javascript
jquery实现submit提交表单
Feb 03 Javascript
浅析Javascript中bind()方法的使用与实现
Apr 29 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
Mar 02 Javascript
js表单序列化判断空值的实例
Sep 22 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
Nov 25 Javascript
Vue 实现从小到大的横向滑动效果详解
Oct 16 Javascript
Moment的feature导致线上bug解决分析
Sep 23 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
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
php 文件上传代码(限制jpg文件)
2010/01/05 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
js继承的实现代码
2010/08/05 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
基于ssm框架实现layui分页效果
2019/07/27 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
Python中常用信号signal类型实例
2018/01/25 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
餐饮业创业计划书范文
2014/01/06 职场文书
优良学风班申请材料
2014/02/13 职场文书
手机被没收检讨书
2014/02/22 职场文书
民警个人对照检查剖析材料
2014/09/17 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
「月刊Action」2022年5月号封面公开
2022/03/21 日漫
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android