【问题标题】:Calling WebAPI from JavaScript second time第二次从 JavaScript 调用 WebAPI
【发布时间】:2015-12-03 00:33:24
【问题描述】:

我有一个非常简单的 OWIN WebApp,它在控制台应用程序中托管一个简单的控制器。然后我有 ASP.NET MVC 应用程序,从视图中我从 JavaScript 调用该 Web API,如下所示:

function callRest() {
    var url = "http://localhost:9151/api/values";

    var request = new XMLHttpRequest();

    request.open("GET", url, false);
    request.send();

    if (request.status == 200)
        alert("The request succeeded!\n\nThe response representation was:\n\n" + request.responseText)
    else
        alert("The request did not succeed!\n\nThe response status was: " + request.status + " " + client.statusText + ".");

}

这行得通。 Call 真正调用 WebAPI 控制器并返回一个值。但是,如果我在同一个会话中再次调用 callRest() 函数(第二次单击按钮),它并没有真正调用 WebAPI,而是立即返回缓存值。每当我调用 WebAPI 时,我怎样才能做到这一点,它实际上是被调用的,而不是从缓存中返回的?

【问题讨论】:

    标签: javascript asp.net-mvc asp.net-web-api


    【解决方案1】:

    尝试使用 getTime() :

    var url = "http://localhost:9151/api/values?"+new Date().getTime();
    

    享受:)

    【讨论】:

      【解决方案2】:

      这是为了节省往返时间。如果你想要一个新的请求,请求参数需要不同,否则它会缓存。

      为此,您可以遵循here 给出的建议。

      通过简单地向请求添加一个随机数,它会强制浏览器不缓存。

      【讨论】:

        猜你喜欢
        • 2022-01-09
        • 1970-01-01
        • 1970-01-01
        • 2012-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-31
        相关资源
        最近更新 更多