Принудительно очистить кеш в браузере - PullRequest
1 голос
/ 12 января 2010

Я только что сделал довольно большое обновление на сайте, который использует asp.net. В новом обновлении я сильно изменил код, поэтому вместо него использую jquery вместе с веб-сервисом asp.net. У многих моих пользователей есть проблемы с тем, что новое обновление не работает, пока они не очистят весь кеш в своем браузере. Так как всем нужно сказать, чтобы все очистили свой кэш, возможно, я смогу принудительно выполнить сброс при загрузке нового обновления?

Типичный вызов 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" вообще не должна быть там. Когда пользователь очистил свой кэш, он снова работает идеально. Как я могу решить эту проблему?

1 Ответ

3 голосов
/ 12 января 2010

Если вы не хотите отправлять какие-либо данные, просто пропустите параметр 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} });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...