BreezeJs的POST Ajax调用带有用于检索数据的参数,由浏览器缓存。 "cache: false"
属性不起作用,$.ajaxSetup({ cache: false });
选项也不起作用。我该如何防止它发生?如果,我需要代替GET请求,我该如何处理?这是我代码的一部分...
JS
var id = 100;
var serviceName = '/breeze/sample';
var ajaxImpl = breeze.config.getAdapterInstance('ajax');
ajaxImpl.ajax({
type: 'POST',
url: serviceName + '/getdata',
data: { dataid: id },
success: function(data) {
// Do something with data
}
});
ApiController
[HttpPost]
[Authorize("User")]
[ActionName("getdata")]
public object GetData(HttpRequestMessage request)
{
if (!IsAuthorized()) // Pre-defined function
throw new HttpResponseException(HttpStatusCode.Unauthorized);
var data = request.Content.ReadAsFormDataAsync().Result;
var dataId = data["dataid"];
var query = "sp_getdata @id"; // Pass parameter @id to stored procedure "sp_getdata"
var id = new SqlParameter("@id", dataId);
return unitOfWork.Context().ExecuteStoreQuery<GetData>(query, id).ToList();
}
提前致谢。
答案 0 :(得分:1)
我们使用GET和POST进行微风。
你有Global.asax吗?添加它...不确定是否寻找/ api /或/ breeze /是唯一的方法,但要适应你的情况。
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
// Never Cache API (Web API or Breeze.Sharp) Data Requests
if (Request.RawUrl.Contains("/api/") || Request.RawUrl.Contains("/breeze/"))
Response.Cache.SetCacheability(HttpCacheability.NoCache);
}