Onenote API,从 JavaScript 进行 PATCH 时的奇怪行为

Onenote API, strange behavior when PATCH from JavaScript

我的网站上有一个 Kendo 编辑器,还有一个用于将内容保存到 OneNote 的按钮。

保存按钮调用此函数:

updatePageContent: function (pageId, elementId, content) {
        deferred = $q.defer();

        var Request = new XMLHttpRequest();

        Request.open('PATCH', 'https://www.onenote.com/api/beta/pages/' + pageId + '/content');

        Request.setRequestHeader('Content-Type', 'application/json');
        Request.setRequestHeader('Authorization', 'Bearer ' + onenoteApi.token);

        Request.onreadystatechange = onPageUpdated;

        var body = [{
              'target': elementId,
              'action': 'replace',
              'content': '<div data-id=content>' +
                                content +
                         '</div>'
        }]

        Request.send(JSON.stringify(body));

        return deferred.promise;
    }

并且前两次工作正常,但是当我尝试第三次时,发生了一些奇怪的事情。

示例:

我有一个带文本的默认段落,我添加了另一个:

Default text

bla1

好好保存。所以我再添加一段:

Default text

bla1

bla2

好好保存。另一个:

Default text

bla1

bla2

bla3

保存,onenote中的结果是这样的:

bla1

Default text

bla1

bla2

bla3

并阻止页面,如果我再次尝试 PATCH,则会出现访问被拒绝的错误。

这是 OneNote API 中的错误,已在服务器端修复。感谢举报!