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

まず、 Same Origin Policyの制限により、" http://www.ok-soft-gmbh.com/jqGrid/John.txt "urlの形式での使用には注意が必要です。データに対してのみ ajax リクエストを使用できます。同じWebサイトから. したがって、これを防ぐには、プロトコル、ドメイン、およびポートプレフィックスなしでurlを使用する必要があります. ここで、アクセスしようとしているデータは別のドメインからのものであるため、パラメータに直接渡すことはできません. この解決策独自のjsonデータを使用して割り当てるか、独自のドメインURLからデータを取得する必要があるということです. または、 jsonデータでローカル変数を設定し、それをjqGridに割り当てることができますurl

于 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 に答える