Я пытаюсь создать запрос AJAX в IE8.IE8 AJAX GET setRequestHeaders не работает, если параметры не указаны в URL-адресе
var xhr = new ActiveXObject('Msxml2.XMLHTTP');
xhr.open('GET', '/ajax/');
// Required header for Django to detect AJAX request
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.onreadystatechange = function() {
if (this.readyState == 4) console.log(this.responseText);
}
xhr.send(null);
Это прекрасно работает в Firefox, Chrome, Safari. Однако в IE8 все мои тестовые запросы AJAX работают EXCEPT для тех, где я выполняю GET без каких-либо параметров строки запроса (например, выше). Работать без запросы POST вопроса, и GET запросы работают только всякий раз, когда я включаю строки запроса в URL, например:
xhr.open('GET', '/ajax/?foo=bar')
Я также 110% уверен, что мой код сервер обрабатывает эти запросы соответствующим образом, поэтому, это пни меня полностью.
У кого-нибудь есть ключ к тому, что может быть причиной этого?
Я знаю, что это не тот ответ, который вы ищете, почему бы вам не использовать jquery? Он берет на себя всю ответственность за совместимость с браузером. Поэтому попробуйте. Он также не изменит большую часть вашего кода. :) – Bipul
Вы пытались использовать что-то вроде wireshark, чтобы определить, действительно ли IE выдает HTTP-запрос? То есть, вы уверены, что браузер не решает «эй, мне не нужно даже запускать HTTP-запрос, потому что у меня есть этот URL-адрес в кеше!» – Pointy
@Pointy - я должен очистить кэш и перезагрузить сервер после любых изменений. @Bipul - я пишу свою собственную фреймворк, но мне нравится jQuery =) – ground5hark