我在jsFiddle中设置了一个jqgrid:
$("#list").jqGrid({
height: 700,
width: 900,
datatype: 'json',
mtype:'GET',
url: url,
colNames:['Col 1','Col 2'],
colModel :[
{name:'col1', index:'col1'},
{name:'col2', index:'col2'},
],
pager: '#pager_list',
rowNum:20,
rowList:[20,50,100],
viewrecords: true,
caption: 'Test',
gridview : true,
});
http://jsfiddle.net/rw5hogz3/11
但是,它不会从远程URL加载json数据。在浏览器中加载时,json似乎很好。
但是当我在localhost上托管jqgrid和json脚本时,它确实有效。以前有没有经历过这样的事情?非常感谢任何帮助:)
答案 0 :(得分:0)
您需要在服务器上启用CORS。 把它放在返回JSON的页面上
<?php
header("Access-Control-Allow-Origin: *");
如果你正在使用框架,这会稍微复杂一些。
但只是谷歌CORS,了解更多。
另外,您可以尝试使用madalins建议的jsonp数据类型。但是在jqgrid中,它并不像输入&#39; jsonp&#39;那么简单。到数据类型。你需要在ajaxGridOptions ...
中做到这一点$("#list").jqGrid({
height: 700,
width: 900,
datatype: 'json',
ajaxGridOptions: { jsonp: true, contentType: 'application/json; charset=utf-8' },
mtype:'GET',
// rest of your code
这可能不会起作用,因为你仍然可能会遇到某种CORS错误
答案 1 :(得分:0)
尝试使用Jsonp进行交叉请求
使用
$("#list").jqGrid({
height: 700,
width: 900,
datatype: 'json',
mtype:'GET',
url: "http://202.137.146.116/tokoweblink/weblink.php?q=1&agent=ABVT0010",
ajaxGridOptions: { jsonp: true, contentType: 'application/json; charset=utf-8' },
colNames:['Inv No', 'Client', 'Amount'],
colModel:[
{name:'id',index:'id', width:55},
{name:'name',index:'name asc, invdate', width:100},
{name:'amount',index:'amount', width:80, align:"right"}
],
});
使用json key val分配列模型名称,索引。