3

我正在通过 IIS Express 运行一个 ASP.NET MVC 站点。

因此,例如我设置了这个测试页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" language="javascript" type="text/javascript"></script>

<script language="javascript" type="text/javascript">

    var carServiceUrl = "http://localhost:43889/cars";

    $(document).ready(function ()
    {
        $.ajaxSetup(
        {
            cache: false,
            dataType: "json"
            contentType: "application/json"
        });

    });

    get();

    function get()
    {
        var url = carServiceUrl;

        $.ajax({
            cache: false,
            type: "GET",
            async: true,
            url: carServiceUrl,
            dataType: "json",

            success: onGetCarsSuccess
        });
    }

 </script>

</body>
</html>

问题是当我启动 FireBug 并加载此页面时,get() 被触发,但请求在查询字符串中具有某种附加值(例如http://localhost:43889/cars?_=1381820301163),我不知道它是如何到达那里的。我不知道是因为我在 MVC 项目中运行它,还是我通过 IIS Express 运行所有这些或什么。我通常使用直接的 IIS,所以不确定。

我不确定为什么它甚至会附加?_=1381820301163到请求中。我从未在我的 jQuery 调用中指定这一点。

4

2 回答 2

4

来自 jQuery ajax 文档:

http://api.jquery.com/jQuery.ajax/

缓存(默认值:true,对于 dataType 'script' 和 'jsonp' 为 false)

类型:布尔值

如果设置为 false,它将强制浏览器不缓存请求的页面。注意:将缓存设置为 false 仅适用于 HEAD 和 GET 请求。它通过将“_={timestamp}”附加到 GET 参数来工作。其他类型的请求不需要该参数,除非在 IE8 中对已由 GET 请求的 URL 进行 POST。

于 2013-10-15T07:09:16.007 回答
3

尝试删除cache: false

It works by appending "_={timestamp}" to the GET parameters.

http://api.jquery.com/jQuery.ajax/

于 2013-10-15T07:09:06.123 回答