ajax有时返回#document,有时返回Object {d:Object}

时间:2017-06-13 15:20:09

标签: javascript jquery ajax sharepoint

当我在Chrome中检查控制台时,Sharepoint页面的行为与dataObject {d: Object}时的情况相同,而d是所需项目的数组。

当数据为#document时,由于我根据数据追加html,因此页面无法加载。

我理解#document是因为jQuery的智能猜测而出现的,但我不确定它为什么会被退回。

function getItems() {
    var url = hostWebURL + "_api/web/lists('" + guid + "')/items/";
    var items;
    $.ajax({
            url: url,
            type: "GET",
            headers: { "Accept": "application/json;odata=verbose "}, // return data format
            success: function (data) {
                //items is iterable ListItemCollection
                            console.log(data);
                items = data.d.results;
            ...
          },
            error: function (error) {
                var errorMsg = "";

                if (error.status == "403" || error.status == "401") {
                    errorMsg = "You do not have Authorization to see Site Permissions - ErrorCode(" + error.status + ") Error Details: " + error.statusText;
                }
                else {
                    var errorMsg = "Failed - ErrorCode(" + error.status + ") Error Details: " + error.statusText;
                }

                reportError(errorMsg);

1 个答案:

答案 0 :(得分:1)

beforeSend: function (XMLHttpRequest) {                   
         XMLHttpRequest.setRequestHeader("Accept", "application/json; odata=verbose");

在通话中添加了此参数并且它正在运行!

取自:http://ratsubsharewall.blogspot.com/2017/02/rest-call-returns-xml-instead-of-json.html