javascript - BreezeJs - 带参数的 Ajax 调用,无缓存

标签 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
    }
});

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/

相关文章:

java - 查询级别 2 缓存抛出 ClassCastException

javascript - 我们每个网页的 Javascript 文件中的这些代码行是做什么的?

javascript - 使用平滑滚动片段,将元素置于页面中心

java - jQuery、ajax、端口号

javascript - 未捕获的语法错误 : Unexpected token {

javascript - 在 iPad 上使用 JS 进行图像缓存

caching - 在 Laravel 5 中注入(inject)缓存作为依赖项

Javascript 函数多种形式

javascript - 将 cheerio 对象转换为字符串

php - Symfony 访问 web 目录之外的 mp3 文件以在浏览器中播放