简体   繁体   中英

Getting 403 Forbidden error while trying to add attachment to sharepoint list

Html code:

<html>
<input id="uploadFile" type="file">
<input type="button" onclick="AddAttachments(1)" value="Add Attachments">
</html>

In the below javascript code I am trying to add attachment to sharepoint list.But getting error as follows: POST http://siteurl/_api/web/lists/getbytitle ('DocUploadTest')/items(1)/AttachmentFiles/add(FileName='Test.txt') 403 (FORBIDDEN)

<script src="http://siteName/SiteAssets/ScriptFiles/jquery.min.js"></script>
<script type="text/javascript">

 function AddAttachments(itemId)
{   
var digest = "";
$.ajax(
{
   url: "/_api/contextinfo",
   method: "POST",
   headers: {
   "ACCEPT": "application/json;odata=verbose",
   "content-type": 
   "application/json;odata=verbose"
               },
                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: "/_api/web/lists/getbytitle('DocUploadTest')/items("+itemId+")/AttachmentFiles/add(FileName='" + fileName + "')",                                         
                                    method: "POST",
                                    binaryStringRequestBody: true,
                                    data: fileData,
                                    processData: false,
                                    headers: {
                                                    "ACCEPT": "application/json;odata=verbose",          
                                                    "X-RequestDigest": document.getElementById("__REQUESTDIGEST").value,
                                                 //   "content-length": fileData.byteLength
                                    },                                                                                                                            
                                    success: function (data) {                                            
                                            console.log("success");                                               
                                    },
                                    error: function (data) {                                                
                                            console.log("Error occured." + data.responseText);
                                    }
                    });                          
                };
                reader.readAsArrayBuffer(fileInput[0].files[0]);

});                                          
}
</script>

Can anybody tell what is the issue?

Use the script below to add attachment for list item:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {

 var ID = 1;
 var listname = "UploadTEST";

 $("#my-attachments").change(function() {

  var file = $(this)[0].files[0];

  var getFileBuffer = function(file) {

   var deferred = $.Deferred();
   var reader = new FileReader();

   reader.onload = function(e) {
    deferred.resolve(e.target.result);
   }

   reader.onerror = function(e) {
    deferred.reject(e.target.error);
   }

   reader.readAsArrayBuffer(file);

   return deferred.promise();
  };

  getFileBuffer(file).then(function(buffer) {
   console.log(buffer);
   $.ajax({
    url: _spPageContextInfo.webAbsoluteUrl +
     "/_api/web/lists/getbytitle('" + listname + "')/items(" + ID + ")/AttachmentFiles/add(FileName='" + file.name + "')",
    method: 'POST',
    data: buffer,
    processData: false,
    headers: {
     "Accept": "application/json; odata=verbose",
     "content-type": "application/json; odata=verbose",
     "X-RequestDigest": document.getElementById("__REQUESTDIGEST").value
    }
   });

  });

 });
});
    </script>
    <input id="my-attachments" type="file"/>

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM