我正在从json字符串“http://www.ok-soft-gmbh.com/jqGrid/John.txt”
创建一个jqgrid我编写的JavaScript类似于“http://www.ok-soft-gmbh.com/jqGrid/John.htm”和 url 指向john.txt文件。
它给了我一张没有任何行的表。请帮忙。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Demonstration how to read simple JSON text</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/themes/redmond/jquery-ui.css" />
<link rel="stylesheet" type="text/css" href="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-3.8.2/css/ui.jqgrid.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-3.8.2/js/i18n/grid.locale-en.js"></script>
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-3.8.2/js/jquery.jqGrid.min.js"></script>
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function () {
$('#jqgrid').jqGrid({
url: 'http://www.ok-soft-gmbh.com/jqGrid/John.txt',
datatype: 'json',
colNames: ['Col1', 'Col2', 'Col3'],
colModel: [
{ name: 'col1' },
{ name: 'col2' },
{ name: 'col3' }
],
jsonReader: { repeatitems: false },
height: 'auto'
});
});
//]]>
</script>
</head>
<body>
<table id="jqgrid"><tr><td/></tr></table>
</body>
</html>
这就是我的代码...... 这就是我得到的
答案 0 :(得分:1)
首先,由于http://www.ok-soft-gmbh.com/jqGrid/John.txt限制,您应该谨慎使用“Same Origin Policy”形式的url
。您只能对来自同一网络的数据使用ajax请求因此,为了防止这种情况,您应该使用网址而不使用协议,域名和端口前缀。此处,您尝试访问的数据来自另一个域,您无法通过它直接指向url
参数。解决方案是你必须使用自己的 json 数据来分配或者你自己的域 url 来获取数据您可以使用 json 数据设置局部变量,并将其分配给 jqGrid
答案 1 :(得分:1)
我认为是因为,您正在为另一个域中的资源发出ajax请求。
尝试此操作,将以下给定的数据保存到文件John.txt中,并将您的网址更改为指向此
url: 'John.txt'
,
{
"total": 2,
"page": 1,
"records": 12,
"rows": [
{
"id": "1",
"col1": "cell11",
"col2": "cell12",
"col3": "cell13"
},
{
"id": "2",
"col1": "cell21",
"col2": "cell22",
"col3": "cell23"
}
]
}