Javascript 无法使用OneDrive For Business API将内容放入/上载到OneDrive For Business中的文件

Javascript 无法使用OneDrive For Business API将内容放入/上载到OneDrive For Business中的文件,javascript,onedrive,Javascript,Onedrive,我正在尝试使用OneDrive for Business REST API将内容放入/添加到OneDrive for Business中的文件。 下面是代码片段: var getFile = getFileBuffer(file); getFile.done(function (arrayBuffer) { var content = arrayBuffer; var query = "https://myonedrive/_api/v2.0/drive/{driveId}

我正在尝试使用OneDrive for Business REST API将内容放入/添加到OneDrive for Business中的文件。 下面是代码片段:

 var getFile = getFileBuffer(file);
  getFile.done(function (arrayBuffer) {
    var content = arrayBuffer;
    var query = "https://myonedrive/_api/v2.0/drive/{driveId}/items/{parentfolderId}/children/{fileName}/content";
  $.ajax({
      url: query,
      method: "PUT",
      data: arrayBuffer,   
      headers: {
      "accept": "application/json;odata=verbose",
      "content-length": arrayBuffer.byteLength
      },
      beforeSend: function (xhr) {
            xhr.setRequestHeader("Authorization", "Bearer " + bearerTokenvalue);
           },
 success: function (data) {
          return
       },
 error: function (err) {
            return;
        }
    })
  });
function getFileBuffer(file) {
    var deferred = jQuery.Deferred();
    var reader = new FileReader();
    reader.onloadend = function (e) {
        deferred.resolve(e.target.result);
    }
    reader.onerror = function (e) {
        deferred.reject(e.target.error);
    }
    reader.readAsArrayBuffer(file);
    return deferred.promise();
}
我在成功呼叫中遇到以下错误,文件中未上载内容


错误是由
Accept
应用程序/json
媒体类型的
odata
参数触发的。我相信
odata.metadata
参数正是您真正想要的:

Accept:application/json;odata.metadata=verbose

原创

这个错误消息确实有点奇怪,但我想猜测一下,您的根本原因很可能与错误的URL有关。您提供的是
driveId
,但您访问的是
驱动器
单例,而不是
驱动器
集合。试试这个,看看是否有帮助:


https://myonedrive/_api/v2.0/drives/{driveId}/items/{parentfolderId}/children/{fileName}/content

在URL中使用驱动器集合后,我仍然会遇到相同的错误仔细查看原始请求并发现其他问题-我已更新了我的答案以反映。