Jquery Sharepoint Angular REST添加项目产生400(错误请求)

Jquery Sharepoint Angular REST添加项目产生400(错误请求),jquery,angularjs,rest,sharepoint,Jquery,Angularjs,Rest,Sharepoint,我已经把头撞在墙上好几天了。我正在尝试使用Angular js将项目添加到Sharepoint中的列表中 检索项目很简单,但添加项目对我来说不起作用 代码: 我以前用jQueryAjax做过这件事(以类似的方式),但我似乎找不到问题所在 脚本运行在与调用位置相同的站点上,因此没有跨域调用。此外,它还嵌入了脚本编辑器,因此它直接在Sharepoint母版页中运行 有什么建议吗?出现此错误可能是由于以下原因: 1.列表项有效负载无效 尤其是body属性的格式对于列表项必须具有以下格式: $http(

我已经把头撞在墙上好几天了。我正在尝试使用Angular js将项目添加到Sharepoint中的列表中

检索项目很简单,但添加项目对我来说不起作用

代码:

我以前用jQueryAjax做过这件事(以类似的方式),但我似乎找不到问题所在

脚本运行在与调用位置相同的站点上,因此没有跨域调用。此外,它还嵌入了脚本编辑器,因此它直接在Sharepoint母版页中运行


有什么建议吗?

出现此错误可能是由于以下原因:

1.列表项有效负载无效

尤其是
body
属性的格式对于列表项必须具有以下格式:

$http({
          data: { Title : 'John Doe', __metadata:  {type: 'SP.Data.ContactsListItem' }},  
          //remaining parameters are omitted for clarity 
      });
在哪里

  • 标题
    是列表项的属性
  • \u metadata
    属性是一个强制属性,并指定列表项的实体类型(在您的情况下,此属性缺失,在我的情况下,因为它是一个
    联系人
    列表,值为
    SP.Data.ContactsListItem
    )请参阅关于 下面的列表项实体类型部分描述了如何确定实体 列表项的类型
2。缺少标题
内容类型

必须指定内容类型,例如:

$http({
         headers: {
                    "Content-Type" : "application/json;odata=verbose",
                    //...                 
                  }          
 });

以下示例演示如何使用SharePoint 2013/Online REST创建列表项

示例

$scope.createContact = function() {

      var endpointUrl = "https://contoso.sharepoint.com/_api/web/lists/getByTitle('Contacts')/items";
      var itemPayload = { Title : 'John Doe', __metadata:  {type: 'SP.Data.ContactsListItem' }};

      $http({
               method: "POST",
               url : endpointUrl,
               data: itemPayload,  
               headers: {
                           "Content-Type" : "application/json;odata=verbose",
                           "Accept": "application/json;odata=verbose",
                           "X-RequestDigest": $("#__REQUESTDIGEST").val() 
                        }          
      }).success(function (data, status, headers, config) {  
          //Process List Item
          var contact = data.d;
      }).error(function (data, status, headers, config) {  
          //An error occured...
      });  

 }
关于列表项实体类型 以下查询允许确定列表项的实体类型:


端点Uri:
https://contoso.sharepoint.com/_api/web/lists/getByTitle(“”)?$select=ListItemEntityTypeFullName

您是否尝试过在字符串化后传递数据,如下所示。试试看。var data=JSON.stringify({data:{'Title':'Test'});
$scope.createContact = function() {

      var endpointUrl = "https://contoso.sharepoint.com/_api/web/lists/getByTitle('Contacts')/items";
      var itemPayload = { Title : 'John Doe', __metadata:  {type: 'SP.Data.ContactsListItem' }};

      $http({
               method: "POST",
               url : endpointUrl,
               data: itemPayload,  
               headers: {
                           "Content-Type" : "application/json;odata=verbose",
                           "Accept": "application/json;odata=verbose",
                           "X-RequestDigest": $("#__REQUESTDIGEST").val() 
                        }          
      }).success(function (data, status, headers, config) {  
          //Process List Item
          var contact = data.d;
      }).error(function (data, status, headers, config) {  
          //An error occured...
      });  

 }