第二次从JavaScript调用WebAPI

时间:2015-12-02 16:28:13

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

我有一个非常简单的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 + ".");

}

这很有效。调用真的调用WebAPI控制器并返回一个值。但是,如果我在同一个会话中再次调用callRest()函数(第二次单击按钮),它实际上并不会调用WebAPI,而是立即返回缓存的值。每当我调用WebAPI它实际上是调用它而不是从缓存中返回时,我该怎么做呢?

2 个答案:

答案 0 :(得分:0)

尝试使用getTime():

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

享受:)

答案 1 :(得分:0)

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

要实现这一目标,您可以按照here给出的建议。

只需在请求中添加一个随机数,就会强制浏览器不进行缓存。