easyui 新手一名,玩 datagrid 发现加载*.json 无显示,*.asp 就正常的,
*.json 与 *.asp的内容是一样的,均是按uft-8编码保存,就是扩展名不一样,
Win7 IIS7.5 环境下,已添加 .json 的 MIME 为 text/plain
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 4 <link rel="stylesheet" type="text/css" 5 href="easyui/themes/icon.css"> 6 <link rel="stylesheet" type="text/css" 7 href="easyui/themes/default/easyui.css"> 8 <script type="text/javascript" 9 src="easyui/jquery.min.js"></script> 10 <script type="text/javascript" 11 src="easyui/jquery.easyui.min.js"></script> 12 <script type="text/javascript"> 13 $(function() { 14 var url='feedback_data.asp'; 15 $('#feedback').datagrid({ 16 title : "用户反馈 - 所有", 17 width : "auto", 18 striped : true, 19 singleSelect : true, 20 loadMsg : "正在加载,请稍等...", 21 url : url, 22 pagination : true, 23 rownumbers : true, 24 pageList : [ 5, 10, 15, 20 ], 25 pageSize : 10, 26 idField:"id", 27 columns:[[ 28 {title:"发送人",field:"user",width:"180",align:"center"} , 29 {title:"反馈内容",field:"title",width:"300",align:"center"}, 30 {title:"时间",field:"sendTime",width:"300",align:"center"} 31 ]], 32 onDblClickRow:function(index,row){ 33 alert(row.id); 34 } 35 }); 36 }); 37 </script> 38 39 </head> 40 <body> 41 <h1>HELLO</h1> 42 <table id="feedback" sytle="width:640px;height:400px;"></table> 43 </body> 44 </html>
如上数据显示正常,但是把14行的 url 改成 feedback_data.json 就显示不出数据了
直接用浏览器访问 feedback_data.json 也能显示数据文件的内容来
{ "total":10, "rows":[ {"id":"001","user":"ok","title":"这款软件我非常满意","sendTime":"2012年1月1日 15:40"}, {"id":"002","user":"zs","title":"I think so good","sendTime":"2012年1月1日 15:40"}, {"id":"003","user":"zs","title":"这款软件我非常满意","sendTime":"2012年1月1日 15:40"}, {"id":"004","user":"zs","title":"I think so good","sendTime":"2012年1月1日 15:40"}, {"id":"005","user":"zs","title":"这款软件我非常满意","sendTime":"2012年1月1日 15:40"}, {"id":"006","user":"zs","title":"I think so good","sendTime":"2012年1月1日 15:40"}, {"id":"007","user":"zs","title":"这款软件我非常满意","sendTime":"2012年1月1日 15:40"}, {"id":"008","user":"zs","title":"I think so good","sendTime":"2012年1月1日 15:40"}, {"id":"009","user":"zs","title":"这款软件我非常满意","sendTime":"2012年1月1日 15:40"}, {"id":"010","user":"zs","title":"I think so good","sendTime":"2012年1月1日 15:40"} ] }
f12看响应
F12看到对 easyui-datagrid 对 *.json的请求
返回 HTTP ERROR 405 - Method Not Allowed。
这个关键词查了一下,好像是 IIS 对禁止 POST静态文件。
网上改 IIS 配置的,允许POST的方案我都没有尝试成功,
我找到两个解决的办法:
1.用 *.asp 代替 *.json,尤其是本来就要获取动态查询结果,这个问题就绕过了
2.让 easyui-datagrid 以GET方式请求 *.json 文件, 在16行前插入 method:'GET',
url='feedback_data.asp' url不对,ajax请求方式的url是这么写的吗?