一个奇怪的问题 jquery easyui datagrid 在IE下有时 无法接收到数据

wyumening 2014-03-15 02:34:09
最近在页面布局的时候用到了jquery easyui datagrid ,发现有两个页面 中的datagrid在IE中有时无法接收到数据,有时又可以 服务端部分代码:
 List<Model_RsonsPerson> rsonsPersonList = new List<Model_RsonsPerson>();
rsonsPersonList = bllRsPerson.GetList(sqlText.ToString());


Dictionary<string, object> dict = new Dictionary<string, object>();

if (rsonsPersonList!=null)
{
dict.Add("total", rsonsPersonList.Count);
dict.Add("rows", rsonsPersonList);
}
else
{
dict.Add("total", 0);
dict.Add("rows", 0);
}

string temStr = JsonConvert.SerializeObject(dict);

context.Response.Write(temStr);


打断点发现可以执行到 Response.Write这句 tempstr的值为
{"total":2,"rows":[{"ID":8,"bumenId":216,"HotelId":15,"bumenName":"开发部"},{"ID":9,"bumenId":222,"HotelId":15,"bumenName":"测试部"}]}

格式也是对的,客户端的源代码:
$.ajax({type:opts.method,url:opts.url,data:_5c7,dataType:"json",success:function(data){
_5c8(data);
}, error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.responseText); // IE10和IE8下都为空字符串
alert(XMLHttpRequest.status); // IE10 下为0 IE8下为12019
alert(XMLHttpRequest.readyState); IE10下为0 IE8下为4
alert(textStatus); IE10 和IE8下都为"error"



//_5c9.apply(this,arguments); 原来的源代码 注释掉了
}});


在ie开发人员工具中的网络截图如下:


发出的ajax请求被终止了,请求正文和请求内容都为空, 试着设置了timeout属性也无效,这个请求之前没有其他的ajax请求,在火狐下是可以接收到数据的,实在找不出问题所在了,求指点


...全文
380 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyumening 2014-03-20
  • 打赏
  • 举报
回复
引用 6 楼 showbo 的回复:
abort感觉是超时了被jquery自动取消请求了,和easyui没关系,你的动态页执行时间长不长? 什么版本的easyui
应该是异步请求的问题,只要修改easyui的源代码:
$.ajax({type:opts.method,url:opts.url,data:_5c7,dataType:"json",async:false,success:function(data){
_5c8(data);
}, error: function(XMLHttpRequest, textStatus, errorThrown) {
                        alert(XMLHttpRequest.status);
                        alert(XMLHttpRequest.readyState);
                        alert(textStatus);
                        alert(errorThrown);
                    

//_5c9.apply(this,arguments);
}});
第一行加个async:false就可以了
wyumening 2014-03-18
  • 打赏
  • 举报
回复
引用 6 楼 showbo 的回复:
abort感觉是超时了被jquery自动取消请求了,和easyui没关系,你的动态页执行时间长不长? 什么版本的easyui
使用的版本是jquery easyui 1.3 我试着在源代码中这样写 timeout: 30000 还是不行,在火狐下能正常运行,在firebug中可以看到执行时间为1秒多,ie下的话 情况就和在我的问题描述中提到的一样,自动终止了
Go 旅城通票 2014-03-18
  • 打赏
  • 举报
回复
abort感觉是超时了被jquery自动取消请求了,和easyui没关系,你的动态页执行时间长不长? 什么版本的easyui
wyumening 2014-03-17
  • 打赏
  • 举报
回复
没人回答吗?
wyumening 2014-03-17
  • 打赏
  • 举报
回复
引用 4 楼 dongxinxi 的回复:
看样子是在构造请求或发送时出的错,用Post发送试一下 断点到ajax里面去查,要不就自己用js写一个
默认的发送方式就是post... 调试的时候发现不会经过success函数,在error事件处理中处理,弹出来的XMLHttpRequest参数的有关值就同问题中贴出来的一样,毫无头绪呀。。。
  • 打赏
  • 举报
回复
看样子是在构造请求或发送时出的错,用Post发送试一下 断点到ajax里面去查,要不就自己用js写一个
wyumening 2014-03-15
  • 打赏
  • 举报
回复
引用 1 楼 Return_false 的回复:
context.Response.Write(temStr); context.Response.End();//添加输出结束试试
还是无效
  • 打赏
  • 举报
回复
context.Response.Write(temStr); context.Response.End();//添加输出结束试试

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧