BreezeJs - 使用参数调用Ajax,无缓存

时间:2016-12-26 21:51:01

标签: javascript ajax caching breeze

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();
}

提前致谢。

1 个答案:

答案 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);
}
相关问题