Google Chrome-请求的资源上存在任何访问控制 - 允许原始标头



我正在尝试创建一个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是什么?

相关内容

  • 没有找到相关文章

最新更新