I created a function to get RequestDigest: async function getRequestDigest() at modern site, then before the ajax code in createItem function, I called getRequestDigest() to set const digest= await getRequestDigest();
However keep getting the error that: Uncaught SyntaxError: Failed to execute 'insertBefore' on 'Node': await is only valid in async functions and the top level bodies of modules
function createItem(id, Title)
{
var Url= _spPageContextInfo.webAbsoluteUrl+ "/_api/web/lists/getbytitle('"+ ListName +"')/items";
var itemType = GetItemTypeForListName(ListName);
var item={
"__metadata":{"type": itemType},
"Title": Title,
"ParentId":id
};
const digest= await getRequestDigest();
$.ajax({
url: Url,
type:"POST",
data: JSON.stringify(item),
async:false,
headers:{
"accept": "application/json;odata=verbose",
"content-Type": "application/json;odata=verbose",
"X-RequestDigest": digest
},
success:function(data){
console.log("You have successfully created a new item");
},
error:function(data){
console.log("Error occured");
alert("Error Occured while creating " + Title);
}
});
}
async function getRequestDigest()
{
const response=await fetch(${_spPageContextInfo.webAbsoluteUrl}/_api/contextinfo,{
method:"POST",
headers:{
"Accept":"application/json;odata=verbose"
}
});
const data=await response.json();
return data.d.GetContextWebInformation.FormDigestValue;
}
ParentId:id, ,?