问题描述
所以我有一段代码,如果该字段包含内容,它将更新一个字段值,尽管如果我要更新的字段为null,则该值将不会更新。我在做错什么吗?
siteURL = _spPageContextInfo.webAbsoluteUrl;
var apiPath = _spPageContextInfo.webAbsoluteUrl +"/_api/lists/getbytitle('Training%20copy')/items/getbyid(9)";
$.ajax({
url: apiPath,type: "POST",headers: {
Accept: "application/json;odata=verbose"
},data: JSON.stringify
({
__Metadata:
{
type: "SP.Data.Training_x0020_copyItem"
},Admin_x0020_Function: "Have content"
}),headers: {
"Accept": "application/json;odata=verbose","Content-Type": "application/json;odata=verbose","X-RequestDigest": $("#__REQUESTDIGEST").val(),"IF-MATCH": "*","X-HTTP-Method": "MERGE"
},async: false,success: function(data) {
console.log("Item updated successfully");
},eror: function(data) {
console.log("An error occurred. Please try again.");
}
})
解决方法
ajax请求中有两个标头参数,尚不清楚它是否会影响。
我的测试代码供您参考:
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
Update()
function Update(){
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/GetByTitle('Doc')/items(9)",type: "POST",headers: {
"accept": "application/json;odata=verbose","X-RequestDigest": $("#__REQUESTDIGEST").val(),"content-Type": "application/json;odata=verbose","IF-MATCH": "*","X-HTTP-Method": "MERGE"
},data: JSON.stringify({__metadata:{'type':'SP.Data.DocItem'},test:'test'}),/*where Title is column name and add your desired new data*/
success: function(data) {
console.log(data);
},error: function(error) {
alert(JSON.stringify(error));
}
});
}
})
</script>