2013-10-11 55 views
0

我得到onloading的jqGrid的一個錯誤如下:的jqGrid不會加載和錯誤,其無效的XML,但是數據是JSON

load error: Error: Invalid XML: {"d":[{"id":1,"name":"Medical 1","city":"Kiev","instituteTypeId":0},{"id":2,"name":"Medical 2","city":"Kherson","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); 
       }, 

有任何數據類型= xml或定義的東西....

回答

3

您使用dataType: 'json'這是不對的。 jqGrid的選項有datatypedataType。所以你應該使用dataType: 'json'。未知選項dataType將被忽略,將使用默認選項dataType: 'xml'

此外,我認爲你應該只使用jsonReader: { root: "d" }

The demo應該接近你所需要的。所以,你應該這樣做

$("#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" } 
    ... 
}); 
+0

非常感謝您的幫助,如果你曾經在基輔讓我知道會請你美好的夜晚出來))) –

+0

@JaapTerlouw:歡迎您!我很高興能幫助你。直到現在我從未去過基輔,但是謝謝你的邀請。 – Oleg