Примечание: это относится к предыдущему вопросу .
У меня есть страница Wicket, которая имеет форму с некоторыми сложными взаимодействиями на стороне клиента, для которых я решил использовать jQuery вместо Wicket (долгое обсуждение, я знаю). По сути, я просто создаю объект JSON, отправляю его через AJAX и выполняю некоторые действия после его завершения. Вызов работает нормально в Firefox, но не в любой версии IE. Я уже проверил, что нет посторонних запятых. Вот код:
var lookup = {
'name': name,
'description': description,
'items': [{
'name': itemName,
'value': itemValue
}]
};
$.ajax({
type: 'post',
url: '${callbackURL}', // This file is parsed by Wicket and receives a dynamic callback URL here. This is not jQuery!
cache: false,
data: {'lookup': JSON.stringify(lookup)},
contentType: 'application/json',
complete: function() {
alert('This never gets called in IE!')
}
});
Есть предложения? Спасибо!
Обновление: Похоже, моя проблема связана с кэшированием ресурсов в IE. Я поместил код без кэширования в мой HTML-файл, но кажется, что либо страница все еще кэшируется (и, соответственно, JS, на которую она ссылается), либо файл JS с моим кодом jQuery кэшируется с старый URL обратного вызова в нем, так что сервер не отвечает, потому что по этому URL больше ничего нет. Когда я удаляю красивые URL-адреса, все работает нормально (потому что каждый раз, когда Wicket генерирует URL-адрес, он уникален). И все же, разве функция complete
не должна вызываться, даже если нет ответа от сервера?