Sharepoint请求摘要值跨域

我在NodeJS和ExpressJs上构build了一个Web应用程序,我试图通过Sharepoint REST Api将文档上传到Sharepoint Online库。

我能够authentication并创build和更新列表项目。 我正在使用node-sp-auth进行身份validation和express-request以发出http请求。

为了访问Sharepoint REST api我在我的头中使用FormDigestValue

标题:

 Headers['Content-Type'] = 'application/json;odata=verbose'; Headers['X-RequestDigest'] = FormDigestValue; Headers['Accept'] = "application/json;odata=verbose"; Headers['X-HTTP-Method'] = "POST"; 

当我尝试创build/更新自定义列表中的列表项时,这工作正常 。 但是当我尝试上传文件时收到以下错误:

 body: '{"error":{"code":"-1, Microsoft.SharePoint.SPException","message": {"lang":"en-US","value":"There is no app context to execute this request."}}}' } } 

我用于上传的url:

 siteurl + "/_api/SP.AppContextSite(@TargetSite)/web/lists/getByTitle(@TargetLibrary)/RootFolder/Files/add(url=@TargetFileName,overwrite='true')?" + "@TargetSite='" + siteurl + "'" + "&@TargetLibrary='" + libraryName + "'" + "&@TargetFileName='" + fileName + "'"; 

post要求:

 request.post({ url: url, type: "POST", headers: uploadHeaders, binaryStringRequestBody: true, body: fileData, }) 

任何想法我做错了什么?

使用这个格式来代替post:

 url: url, type: 'POST', data: fileData, processData: false, headers: { 'Accept':'application/json;odata=verbose', 'X-RequestDigest': digest, 'Content-Length': fileData.byteLength } 

如果你没有一个RequestDigest已经调用_api / SP.AppContextSite(@TargetSite)/ contextinfo