Ajax и IE
function createRequest() {
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
if (!request)
alert("Error initializing XMLHttpRequest!");
}
function updatePage(){
if (request.readyState == 4) {
if (request.status == 200){
var response=request.responseText;
div_=document.getElementById("T_and_scr");
div_.innerHTML=response;
div_.style.display="block";
}else{
alert("status is " + request.status);
}
}
}
function GetTab(){
createRequest();
var url = "ALCajax.php";
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);
}
....блин опера тоже вроде глючит - при изменении скрипта ALCajax.php - новые данные появляются спустя какоето время...
...а также русские буквы приходят какимто убожеством :(
request.send(null);
...
ошибка в эксплорере исчезает.... но соответственно ничего и не посылается:(
function createRequest(){
if (request) return;
try {
request = new XMLHttpRequest();
} catch(e){
var versions = new Array(
'MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'
);
for (var i=0; i<versions.length && !this.request; i++){
try {
request = new ActiveXObject(versions);
} catch(e){}
}
}
if (!request) alert("Error initializing XMLHttpRequest!");
}
а в остальном не вижу причин, по которым код не должен работать
данные для ajax в оби стороны проходят в кодировке utf-8
Не пишите глупостей. XMLHttpRequest не привязан к какой-либо кодировке.
Версия IE какая? Что есть на странице помимо кода, приведенного выше?
ругается непосредственно на строку:
var response=request.responseText;
...
счас попробую код dead_star
кода там не оч много: сессии, бд... JS больше никакова
у меня нет под боком маня по ajax поэтому я лишь предполагаю
я точно помню, что последний раз, когда я делал приложения с ajax-ом, я отправлял данные в cp1251, а на сервер они приходили в utf-8
хотя возможно причина в том, что я использовал библиотеку prototype
Зачем предполагать, если не знаешь?
Если сериализуешь форму, то без широкого напильника у тебя получиться отправить данные только в utf-8. Но это проблема сериализации формы и прочего кодирования, а не отправки на сервер посредством XMLHttpRequest. А уж с сервера получаются данные в любой кодировке.
кстати у меня ошибка в коде. забыл this убрать
если не урать то он устанавливает самую старую версию тоесть Microsoft.XMLHTTP
может быть в этом ошибка
Если сериализуешь форму, то без широкого напильника у тебя получиться отправить данные только в utf-8. Но это проблема сериализации формы и прочего кодирования, а не отправки на сервер посредством XMLHttpRequest. А уж с сервера получаются данные в любой кодировке.
без комментариев
Поставьте в начало ALCajax.php
header( 'Content-Type: text/html; charset=windows-1251' );
?>
почему когда изменяешь код скрипта к которому происходит ajax запрос (ALCajax.php) изменения на главной странице не вступают в силу? т.е. какоето время идет старый ответ request.responseText.... что где то соединение не рвется или что?
все нормально становиться только после перезапуска браузера.
почему когда изменяешь код скрипта к которому происходит ajax запрос (ALCajax.php) изменения на главной странице не вступают в силу? т.е. какоето время идет старый ответ request.responseText.... что где то соединение не рвется или что?
все нормально становиться только после перезапуска браузера.
Проблема в кэшировании.
http://xmlhttprequest.ru/#problem