作者:焦作艾文斯 | 来源:互联网 | 2023-05-17 16:50
在DynamicsCRM2016中webapi的创建返回的status是204,response中没有返回任何数据,所以我们在要取返回数据记录的id时必须要通过截取字符串的方式去h
在Dynamics CRM2016中web api的创建返回的status是204,response中没有返回任何数据,所以我们在要取返回数据记录的id时必须要通过截取字符串的方式去header中取。
那Dynamics 365改进了这个问题,通过在请求头中加prefer的方式,对创建的repuest进行了改进
var entity = {};
entity["name"] = '测试创建';//文本
entity["telephone1"] = '213213';
entity["fax"]="879879";
var jsOnEntity= window.JSON.stringify(entity);
var req = new XMLHttpRequest()
req.open("post", Xrm.Page.context.getClientUrl() + "/api/data/v8.2/accounts", false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Prefer", "return=representation");
req.Onreadystatechange= function () {
if (this.readyState == 4) {
if (this.status == 201) {
var data=JSON.parse(this.responseText);
}
else {
}
}
};
req.send(jsonEntity);
看下结果,返回了包括accountid在内的所有字段记录,status也由原来的204变成了201,和原来的区别就在于多了个prefer的头,设置为“return=representation”
更新我就不贴示例代码及结果截图了,同创建一样,加一个prefer头,就能返回更新后的所有字段值。