您好,我正在使用Jqgrid,我想在JqGrid中显示所有订单列表,但是订单数据未显示在Jqgrid中。任何专家都可以告诉我代码中的问题是什么,为什么jqgrid中不显示数据。首先,在网格加载时没有错误,仅在网格“ error”上显示,但是在刷新网格时显示此错误:>
在以下位置访问XMLHttpRequest 来自的“ http://api.bigcommerce.com/stores/4jwabif3gj/v2/orders.json” 原产地“ http://localhost:62797”已被CORS政策阻止: 对预检请求的响应未通过访问控制检查: 预检请求不允许重定向。
HTML
<table id="JqGrid"></table>
<div id="JqGridPager"></div>
jQuery
<script type="text/javascript">
jQuery(document).ready(function ($) {
var $grid = $("#JqGrid");
$grid.jqGrid({
url: 'http://api.bigcommerce.com/stores/4jwabif3gj/v2/orders.json',
datatype: 'json',
ajaxGridOptions: { xhrFields: { withCredentials: true } },
colNames: ['id', 'billing_address', 'date_created', 'date_modified', 'date_shipped', 'status'],
colModel: [
{ name: 'id', index: 'id', width: 10 },
{ name: 'billing_address', index: 'billing_address', width: 50 },
{ name: 'date_created', index: 'date_created', width: 50, sorttype: 'date', datefmt: 'Y-m-d' },
{ name: 'date_modified', index: 'date_modified', width: 50, sorttype: 'date', datefmt: 'Y-m-d' },
{ name: 'date_shipped', index: 'date_shipped', width: 50, sorttype: 'date', datefmt: 'Y-m-d' },
{ name: 'status', index: 'status', width: 50 },
],
caption: "Employees",
pager: "#JqGridPager",
loadBeforeSend: function (jqXHR) {
jqXHR.setRequestHeader("X-Auth-Client", 'clientstring', "X-Auth-Token", 'tokenid');
},
viewrecords: true,
width: 1100,
height: 400
});
$grid.jqGrid('navGrid', '#JqGridPager', { edit: false, add: false, del: false })
});
</script>
答案 0 :(得分:1)
如果您真的想使用该网站,我认为您唯一的选择是通过您要控制的网站代理它。在您的站点上,启用并支持CORS,您的页面调用您的服务,您的服务调用目标,并将响应传递到您的页面。
尽管这是一个从技术上来说正确的答案,它将使您不受阻拦,但我认为您应该考虑将别人的资源用于自己的目的。他们可能出于某种原因阻止了CORS访问。遵循此建议可能会违反该网站的使用条款,您将自担风险。
请与该站点联系并根据您的需要进行协商,或者找到他们想要的任何数据的其他来源。