Я разрабатываю Расширение Firefox, которое использует ajax-запрос для получения информации. Это код:
$.ajax({
url: "http://127.0.0.1/foo/bar/Service?wsdl" + new Date().getTime(),
beforeSend: function(request) { request.setRequestHeader("SOAPAction", "Group"); },
async: false,
cache: false,
type: "POST",
dataType: "xml",
data: req,
contentType: "text/xml; charset=\"utf-8\"",
success: function (data, textStatus, xmlHttpRequest) {
out = $(xmlHttpRequest.responseXML);
}
});
Я все еще получаю тот же результат, когда данные, отправляемые на сервер, изменяются. Я попытался избежать этого, добавив «new Date ( ) .getTime () "в URL и" cache: false ". Похоже, это не работает. После перезапуска браузера я получаю правильные результаты.
Кто-нибудь знает, в чем проблема? Есть ли какая-то обработка сеанса, чтобы сервер все равно возвращал старый ответ?
Редактировать: Я провел много тестов и отладок, и я думаю, что обнаружил проблему: файл cookie сохраняется с каждым ajax-запросом который содержит идентификатор сеанса, поэтому каждый раз, когда я снова выполняю запрос, сервер отправляет данные сеанса с идентификатором сеанса в cookie. Действительно плохое поведение, я не знал, что файлы cookie могут быть созданы с помощью ajax-запроса. Поэтому все, что мне нужно сделать, чтобы решить проблему, - это функция, которая удаляет этот файл cookie каждый раз, когда меняются мои параметры. Еще раз спасибо за вашу помощь.