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
}
});
API Controller
[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();
}
提前致谢。
最佳答案
我们可以轻松地使用 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);
}
关于javascript - BreezeJs - 带参数的 Ajax 调用,无缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41336624/