我刚刚对使用asp.net的网站进行了大量更新。在新的更新中,我更改了很多代码,以便我使用jquery代替asp.net web服务。我的许多用户都遇到问题,新的更新在他们浏览浏览器中的所有缓存之前都不起作用。因为告诉每个人刷新缓存需要做很多工作,也许我可以在加载新更新时强制刷新?
用户遇到问题的典型ajax调用是:
$.ajax({
type: "GET",
url: url,
dataType: "json", cache: false, data: "{}", contentType: "application/json; charset=utf-8"....
在服务器计算机上,我记录错误,它看起来像这样:
Error Message: There was no channel actively listening at 'http://www.domain.com/Service.svc/get?date=2010-01-12&_=1263327373122&{}'. This is often caused by an incorrect address URI. Ensure that the address to which the message is sent matches an address on which a service is listening.
“_ = 1263327373122”部分根本不应该存在。当用户刷新缓存时,它再次完美。我该如何解决这个问题?
答案 0 :(得分:3)
如果您不想发送任何数据,只需省略data
参数或将其更改为data: {}
(不带引号)。它认为您要发送字符串"{}"
。
发送参数_
是因为您指定了cache: false
。
此外,我认为您不应该自己使用参数“构建”URL并传递空数据对象。 jQuery为你做到了。
即。而不是
$.ajax({
type: "GET",
url: "http://mydomain/service?date=" + mydate,
data: {} });
这样做
$.ajax({
type: "GET",
url: "http://mydomain/service", //this remains constant
data: {date: mydate} });