jQuery, AJAX и IE6+

12
J
На сайте с 02.02.2009
Offline
53
943

Столкнулся с проблемкой загадочной.

Весьма примитивный jQuery-ajax запросец.


$.ajax({
type: "POST",
url: "/url/",
data: "x[]=1&x[]=2",
dataType: 'html',
success: function(msg){
alert(msg);
},
error : function (XMLHttpRequest, textStatus, errorThrown){
alert(textStatus);
}
});

в FF, Opera и прочем отрабатывает успешно. В IE же алертит "parserror".

Со стороны урла контент отдаётся с заголовком text/html; charset=utf8; content-length тоже отдаю. Явно указываю что хочу html. Пробовал указывать "text" - то же самое.

Гугл ответил, что решается именно заголовками, доктайпами и указанием типов. Покрутил всё вышеперечисленное, не забывая чистить IE-кеш (и параллельно следя за заголовками на сервере) - не помогает. Всё равно parseerror.(

Сталкивался кто-нибудь?

CR
На сайте с 21.11.2008
Offline
146
#1

jQuery, AJAX и IE6+

третий лишний?

[Удален]
#2

страничку-ответчик дайте (на сервере а не сорец), можно в личку.

T
На сайте с 13.01.2009
Offline
50
#3

Забей на IE6 от него уже отказались многие сервисы и порталы , причём крупные

Papochka
На сайте с 27.02.2009
Offline
40
#4

Да в IE 6 багов много. Я вот тоже вчера столкнулся. Ну думаю не много народу IE6 юзает..

glab
На сайте с 10.09.2008
Offline
42
#5

А после "dataType: 'html'" запятую поставить разве не надо? Попробуйте, может такое в FF и Opera прокатывает, а в IE нет.

J
На сайте с 02.02.2009
Offline
53
#6

IE6+ - это значит, что в 7-м и 8м тоже такая проблема :)

Написал тестик - http://www.skazkin.ru/test.php

jumash добавил 27.07.2009 в 14:07

glab:
А после "dataType: 'html'" запятую поставить разве не надо? Попробуйте, может такое в FF и Opera прокатывает, а в IE нет.

Да, писал прям тут - в рабочем соответственно правильно)

glab
На сайте с 10.09.2008
Offline
42
#7

А если так сделать:


$.post("test.php", { var1: "val1", var2: "val2" },
function(data){
alert("Data Loaded: " + data);
});

Тоесть использовать не глобальную функцию $.ajax(), более конкретную $.post

J
На сайте с 02.02.2009
Offline
53
#8

Пробовал и так тоже - соответственно, добавил в тест для остальных.

Дата не проходит - на error писать нет смысла - то же самое будет :)

glab
На сайте с 10.09.2008
Offline
42
#9

Уберите header'ы из PHP обработчика и все заработает

[Удален]
#10

data: "x[]=1&x[]=2"

вот тут попробуйте сделать так

data:"?x[]=1&x[]=2" или "&x[]=1&x[]=2

да и кстати, разве чарсет пишется не "utf-8" ?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий