使用angularjs将REST HTTP发布到SharePoint列表

使用angularjs将REST HTTP发布到SharePoint列表,angularjs,http-post,sharepoint-2013,Angularjs,Http Post,Sharepoint 2013,我正在使用angularjs创建一个简单的SPA,允许用户与托管SharePoint 2013中的预订列表交互 我已经让HTTP GET正常工作,并为各种过滤查询检索预订 但是,现在我想在列表中插入和更新记录,但Fiddler显示发生了“HTTP错误403”,并在JSON选项卡下显示以下内容: value=此页的安全验证无效,可能已损坏。请使用web浏览器的“后退”按钮重试操作 如果您能帮我确认以下代码是否有效,我将不胜感激。新预订表单上的“提交”按钮会触发帖子: $scope.submitFo

我正在使用angularjs创建一个简单的SPA,允许用户与托管SharePoint 2013中的预订列表交互

我已经让HTTP GET正常工作,并为各种过滤查询检索预订

但是,现在我想在列表中插入和更新记录,但Fiddler显示发生了“HTTP错误403”,并在JSON选项卡下显示以下内容:

value=此页的安全验证无效,可能已损坏。请使用web浏览器的“后退”按钮重试操作

如果您能帮我确认以下代码是否有效,我将不胜感激。新预订表单上的“提交”按钮会触发帖子:

$scope.submitForm = function () {
  //new booking
    if ($scope.editableBooking.Id == 0) {
        service.insertBooking($scope.editableBooking, function (data) {
            $scope.editableBooking = data;
        });
    }
  // Update booking
    else {
        console.log("[submitForm] Update");
        service.updateBooking($scope.editableBooking, function (data) {
            $scope.editableBooking = data;
            console.log('[updatedBooking] id = ' + $scope.editableBooking.Id)
        });
    }
}
在我的工厂内,我有一项插入预订的服务:

var insertBooking = function (newBooking, callback) {
    console.log('[insertBooking] Id = ' + newBooking.Id + " Storeno = " + newBooking.Storeno);

    $http({
        method: 'POST',
        url: "/_api/web/lists/GetByTitle('Bookings')",
        data: $.param({
            Title: newBooking.Storeno,
            Description: newBooking.Description,
            BookedBy: newBooking.Bookedby,
            StartDate: newBooking.StartDate
        }),
        headers: { 'Accept': 'application/json; odata=verbose' }
    }).success(function (data) {
        console.log("[insertBooking] POST worked");
        console.log('[insertbooking] New Id = ' + data.Id);

        callback(data);

    }).error(function (er) {
        console.log('[insertBooking] Error = ' + er);
    });
}

搜索StackOverFlow是这篇关于AppManifest的文章。我没有访问该文件的权限-它位于公司内部网上-我还没有构建可安装的应用程序,只是通过CEWP调用angularjs文件


关于如何更新SP列表,您有什么建议吗?

我过去也遇到过同样的错误

此页的安全验证无效,可能已损坏。请使用web浏览器的“后退”按钮重试操作

我找到了Wictor Wilén的这篇文章,它解释了如何刷新摘要令牌

基本上,在调用
$http
之前插入这一行:

UpdateFormDigest(_spPageContextInfo.webServerRelativeUrl, _spFormDigestRefreshInterval);
博客中的一些要点:

  • 这个方法是同步的,所以不需要担心回调等问题
  • 它使用更新间隔,仅在需要时更新表单摘要–因此,如果您的摘要尚未过期,则不会对SharePoint进行其他调用