Sharepoint REST api返回Bad Request(400)

时间:2017-05-05 11:36:14

标签: javascript rest typescript sharepoint odata

我正在尝试使用 Sharepoint REST Api 创建 ListItem (我们刚开始使用Sharepoint Api,所以绝对没有专家)。
根据 Microsoft tutorial ,帖子应如下所示:
enter image description here

我实施了以下代码

public addItemToList_Test(): void {

var listTitle: string = "DemoHomeWork";
var listItemType: string = "SP.Data." + listTitle + "ListItem";
var listItemTitle: string = "TestItem";
var postBody = { '__metadata': { 'type': listItemType }, 'Title': 'TestItem' };

var $: jQuery = require("jquery");
var call = $.ajax({
  url: listsUrl + "/GetByTitle('" + listTitle + "')/items",
  method: "POST",
  body: postBody,
  headers: {
    "X-RequestDigest": $("#__REQUESTDIGEST").val(),
    "accept": "application/json;odata=verbose",
    "content-type": "application/json;odata=verbose",
    length: JSON.stringify(postBody).length
  }
});

return call;
}

然而,这让我不断回到错误请求(400),并弄清楚为什么发生这种情况很难找到。是否有人可以告诉我该请求有什么问题?

1 个答案:

答案 0 :(得分:0)

您如何验证您的请求?

如文档中所示,您需要将access_token与您的API请求一起提交。在你的标题中,我没有看到access_token被传递。

您需要首先获取access_token,然后将其与请求一起传递以使API工作。

同样在

"'__metadata': { 'type': listItemType }" **listItemType** you are creating it manually but it can be different. Can you check getting it manually (`https://site_url/_api/web/lists/getbytitle(listtitle)`)

并检查此列表的ListItemEntityTypeFullName是否与您创建的listItemType相同。