0

次のようにjqGridをオンロードするとエラーが発生します。

読み込みエラー: エラー: 無効な XML: {"d":[{"id":1,"name":"Medical 1","city":"Kiev","instituteTypeId":0},{"id": 2,"名前":"医療 2","都市":"ヘルソン","instituteTypeId":0}]}

私はJSONを使用していますが、オレグは私に新しい脅威を開くようにアドバイスしました。

jquery コードは次のとおりです。

  mtype: 'POST',
  contentType: "application/json",
  url: "dataServices/objects.asmx/InvokeData",
  ajaxGridOptions: {
      contentType: 'application/json; charset=utf-8'
  },
     postData: JSON.stringify({q: "med&1"}),
                loadonce: true,
                dataType: 'json',
                jsonReader: {
                    root: function (obj) {
                        alert(obj.d);
                        return obj.d;
                    },
                    page: "",
                    total: "",
                    records: function (obj) {
                        return obj.d.length;
                    },
                },
                gridview: true,
                loadError: function (xhr, status, error) {
                    alert('load error: ' + error);
                },

dataType= xml または何も定義されていません....

4

1 に答える 1

3

dataType: 'json'どちらが間違っているかを使用します。jqGrid にはオプションdatatypeと noがありますdataType。したがって、使用する必要がありますdataType: 'json'。不明なオプションdataTypeは無視され、デフォルトのオプションdataType: 'xml'が使用されます。

さらに、ちょうど使用する必要があると思いますjsonReader: { root: "d" }

デモは、必要なものに近いはずです。だからあなたは次のようなことをするべきです

$("#list").jqGrid({
    mtype: 'POST',
    url: "dataServices/objects.asmx/InvokeData",
    datatype: "json",
    ajaxGridOptions: {
        contentType: "application/json; charset=utf-8"
    },
    postData: JSON.stringify({q: "med&1"}),
    loadonce: true,
    jsonReader: { root: "d" }
    ...
});
于 2013-10-11T17:24:07.107 に答える