我有一个简单的html表单,其中已建立请求,以使用REST(从网络获取代码的引用)将文件上传到Sharepoint Server 2013。
以下是代码段
<html>
<head>
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js" type="text/javascript"></script>
<script>
function AddAttachments()
{
var digest = "";
$.ajax(
{
url: "http://vmjnjlabeling01:22216/as/Shared Documents/_api/contextinfo",
method: "POST",
headers: {
"ACCEPT": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
"Authorization" : "Basic c3AyMDEzOlNoYXJlcG9pbnRAMjAxMw=="
},
success: function (data) {
digest = data.d.GetContextWebInformation.FormDigestValue;
},
error: function (data) {
}
}).done(function() {
var fileInput = $('#uploadFile');
var fileName = fileInput[0].files[0].name;
var reader = new FileReader();
reader.onload = function (e) {
var fileData = e.target.result;
var res11 = $.ajax(
{
//url: "http://vmjnjlabeling01:22216/as/_api/web/lists/getbytitle('DocTest')/items(1)/AttachmentFiles/ add(FileName='" + fileName + "')",
url:"http://vmjnjlabeling01:22216/as/_api/web/getfolderbyserverrelativeurl('/as/Shared Documents')/Files/add(overwrite=true, url='" + fileName + "')",
method: "POST",
binaryStringRequestBody: true,
data: fileData,
processData: false,
headers: {
"ACCEPT": "application/json;odata=verbose",
"X-RequestDigest": digest,
// "content-length": fileData.byteLength
},
success: function (data) {
},
error: function (data) {
alert("Error occured." + data.responseText);
}
});
};
reader.readAsArrayBuffer(fileInput[0].files[0]);
});
}
</script>
</head>
<body>
<div>
<input id="uploadFile" type="file">
</div>
<div>
<input type="submit" onclick="AddAttachments()" value="Add Attachments"> </input>
</div>
</body>
</html>
但是,当我上传文档时,尽管已获得所有权限,但每次都会出现401错误。
非常感谢您提供有关此主题的解决此问题的任何帮助。
问候,N
您需要在身份验证提供程序中启用以明文形式发送的基本身份验证凭据。 转到管理中心>>安全>>安全身份验证提供程序>>在右侧下拉列表中,选择应用程序,然后单击默认
在声明身份验证类型中打勾基本身份验证
因为您的页面不在SharePoint内(其中没有任何“ SharePoint”),所以您需要进行的授权与SharePoint页面不同。 最简单的答案可能是查看加载项模型的工作方式。 另一方面,由于除了尝试上载附件外,页面上没有任何其他事情,因此该页面可以是SharePoint页面吗?