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