2015-09-07 15 views
7

oluşturulmaya çalışılırken Yasak Hata 403 Kodum:Sharepoint 2013: Ben Sharepoint 2013 tarihinde dinlenme API ile basit liste öğesi oluşturmak için çalışıyorum et

$.ajax({ 
    url: siteUrl + "/_api/web/lists/getByTitle('internal_Listname')/items", 
    type: "POST", 
    contentType: "application/json;odata=verbose", 
    data: JSON.stringify({ 
     '__metadata': { 
      'type': 'SP.Data.internal_ListnameListItem', 
     }, 
     'K1F1': k1f1Result, 
    }), 
    headers: { 
     "accept": "application/json;odata=verbose", 
     "X-RequestDigest": $("#__REQUESTDIGEST").val(), 
    }, 
    success: function (data) { 
     console.log("done"); 
    }, 
    error: function (err) { 
     console.log(JSON.stringify(err)); 
    } 
}); 

göndermeye çalışıyor veri 403 "Yasak" hatası alıyorum.

"error":{ 
    "code":"-2130575251, Microsoft.SharePoint.SPException", 
    "message":{ 
     "lang":"en-US", 
     "value":"The security validation for this page is invalid and might be corrupted. Please use your web browser's Back button to try your operation again." 
    } 
} 
  • Bu sitede ve listedeki Tam yönetici ayrıcalıklarına sahip. Form özeti sayfada süresi olmuştur beri

cevap

1

: Ben istek vücuda formunu sindirmek eklemeyi unutmuşum. Aşağıdaki yapıya sahip olmalı;

<form runat="server"> 
    <SharePoint:FormDigest ID="FormDigest1" runat="server"></SharePoint:FormDigest> 
</form> 
10

Büyük olasılıkla bu hata oluşur.

Bu durumda, POST için /_api/contextinfo bitiş noktasını kullanarak yeni bir form özet değeri elde edebilirsiniz.

Örnek

function getFormDigest(webUrl) { 
    return $.ajax({ 
     url: webUrl + "/_api/contextinfo", 
     method: "POST", 
     headers: { "Accept": "application/json; odata=verbose" } 
    }); 
} 


function createListItem(webUrl, listName, itemProperties) { 
    return getFormDigest(webUrl).then(function (data) { 

     return $.ajax({ 
      url: webUrl + "/_api/web/lists/getbytitle('" + listName + "')/items", 
      type: "POST", 
      processData: false, 
      contentType: "application/json;odata=verbose", 
      data: JSON.stringify(itemProperties), 
      headers: { 
       "Accept": "application/json;odata=verbose", 
       "X-RequestDigest": data.d.GetContextWebInformation.FormDigestValue 
      } 
     }); 
    }); 
} 

Kullanımı birkaç gün önce çözüm Bulunan

//Create a Task item 
var taskProperties = { 
    '__metadata': { 'type': 'SP.Data.WorkflowTasksItem' }, 
    'Title': 'Order approval' 
}; 

createListItem(_spPageContextInfo.webAbsoluteUrl, 'Workflow Tasks', taskProperties) 
.done(function (data) { 
    console.log('Task has been created successfully'); 
}) 
.fail(function (error) { 
    console.log(JSON.stringify(error)); 
}); 
0

aynı soruna Çözümümün:

<form id="form1" runat="server"> <!-- this make SP 2013 take it legit --> 
<div class="style1"> <!-- dont know what, but SP need it --> 
---your page usually a divs--- 
</div> 
</form> 
İlgili konular