0

我正在从 json 字符串“ http://www.ok-soft-gmbh.com/jqGrid/John.txt ”创建一个 jqgrid

我编写了类似于“ http://www.ok-soft-gmbh.com/jqGrid/John.htm ”的 JavaScript 和 指向 john.txt 文件的url 。

它给了我一张没有任何行的桌子。请帮忙。

<!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>

这就是我的代码......
这就是我得到的

http://tinypic.com/view.php?pic=vqps1x&s=6

4

2 回答 2

1

首先,由于同源策略限制,您应该小心使用urlhttp://www.ok-soft-gmbh.com/jqGrid/John.txt ”形式。您只能对数据使用 ajax 请求来自同一个网站。因此,为防止这种情况,您应该使用不带协议、域和端口前缀的url。由于您尝试访问的数据来自另一个域,因此您无法将其直接传递给参数。解决方案是你必须使用自己的json数据来分配或你自己的域url来获取数据。或者你可以用json数据设置一个局部变量并将其分配给jqGridurl

于 2013-03-15T03:51:36.877 回答
1

我认为这是因为,您正在对另一个域中的资源发出 ajax 请求。

试试这个,将下面给出的数据保存到文件 John.txt 并更改您的 URL 以指向此

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" 
        } 
    ] 
}
于 2013-03-15T03:53:21.273 回答