我正在尝试创建一个jQuery网格,该网格从json文件中获取数据。它在firefox中做得很好。但是在Google Chrome上不起作用我是从中做的Trirand示例
我正在提供代码以获取JSON数据
jQuery("#rowed2").jqGrid({
url:'datagrid_data.json',
datatype: "json",
colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
colModel:[
{name:'id',index:'id', width:55},
{name:'invdate',index:'invdate', width:90},
{name:'name',index:'name asc, invdate', width:100},
{name:'amount',index:'amount', width:80, align:"right"},
{name:'tax',index:'tax', width:80, align:"right"},
{name:'total',index:'total', width:80,align:"right"},
{name:'note',index:'note', width:150, sortable:false}
],
rowNum:10,
rowList:[10,20,30],
pager: '#prowed2',
sortname: 'id',
viewrecords: true,
sortorder: "desc",
caption:"JSON Example"
});
jQuery("#rowed2").jqGrid('navGrid','#prowed2',{edit:false,add:false,del:false});
如果我正确理解您的问题:您无法通过Google Chrome中的AJAX请求访问 local 文件。是通过设计。如果您确实需要更改行为,则必须使用其他参数 --allow-file-access-from-files
启动chrome.exe(' - '应该写两次):
Chrome.exe --allow-file-access-from-files
重要的是,您必须在以前关闭当前运行的所有实例。在此类启动安全功能期间,您不喜欢的安全功能将关闭,您将能够通过AJAX访问本地文件。
此处描述了Chrome.exe选项的列表(也请参见此处)。
设置并读取访问控制原始标头,以控制跨域中浏览器中对数据的访问。这是一个安全问题。
在这里,您无法从脚本运行的不同域中访问JSON,而没有CORS(交叉原点请求共享)标题。
有围绕此限制的方法。
最常见的是启用服务器端的访问控制原始标头。该服务器设置告诉浏览器,他们可以自由使用JSON数据,通常是因为它不敏感。http://enable-cors.org/
CORS周围的另一种常见方法是以JSONP格式传递YORU数据。这是另一个服务器端修复程序,它将JSON数据包装在函数中以在客户端执行。JSONP是什么?