不知道大家是否遇到过Web API查询数据时存在缓存的问题,当你频繁在调试一段查询数据的api时,有时会发现不管你怎么调数据都没有变化,那很有可能是缓存在作祟,在你的请求头部加上一段"Cache-Control"的"no-cache"设置后,就可以实现无缓存查询了。
当然这种方式适合你自己写的web request,SDK中自带的Xrm.WebApi的接口就不行了。
var req = new XMLHttpRequest();
req.open("GET", encodeURI(Xrm.Utility.getGlobalContext().getClientUrl() + "/api/data/v9.1/salesorders("+vcontractid+")?$select=sfdhl_contract_tree,name"), 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", "odata.include-annotations=\"OData.Community.Display.V1.FormattedValue\"");
req.setRequestHeader('Cache-Control', 'no-cache');
req.send();
if (req.status == 200) {
}