我正在通过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调用中指定它。
答案 0 :(得分:3)
来自jQuery ajax文档:
http://api.jquery.com/jQuery.ajax/
缓存(默认值:true,false,对于dataType'script'和'jsonp')
类型:布尔值
如果设置为false,则会强制请求的页面不被删除 由浏览器缓存。注意:将缓存设置为false仅适用 正确使用HEAD和GET请求。它通过附加工作 GET参数的“_ = {timestamp}”。不需要该参数 其他类型的请求,除了在IE8中对URL进行POST时 这已经被GET要求了。
答案 1 :(得分:2)
尝试删除cache: false
It works by appending "_={timestamp}" to the GET parameters.