@serious911

Кроссдоменный AJAX Вконтакте?

Здравствуйте.

Возникла проблема с адаптацией простой iframe игры Вконтакте под IE8+, а именно с ajax запросами.
Приложение грузится через IFRAME с сайта sub.domain.ru/game.php. AJAX запросы отправляются с скрипта ( JavaScript) с использованием jQuery на sub.domain.ru/api.php. В Chrome/FF/Safari/Opera все работает без проблем. В IE8/9 Ajax запросы просто не работают или блокируются (не приходит ответ).

Код для отправки запросов:

$.ajax({
type: "POST",
async: isAsync,
url: URL,
data: params,
success: function(answer) {
....
}
});


В PHP добавил заголовки для кроссдоменных запросов:

header('Content-Type: text/html; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET');


В JavaScript включил CORS:

$.support.cors = true;
  • Вопрос задан
  • 970 просмотров
Пригласить эксперта
Ответы на вопрос 4
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Видимо потому, что старые IE используют XDomainRequest.
Там же написано и про решение.
Ответ написан
Комментировать
@serious911 Автор вопроса
Проблема оказалась совсем в другом и она связана с куками... При "авторизации" пользователю устанавливается куки и при всех ajax запросах пользователя сервер проверяет эти куки, чтобы понять, что это "правильный" пользователь:

setcookie("uid", $uid, time()+3600*24, '/');
.....


В IЕ куки почему-то не устанавливаются - наверно это связано с IFRAMEs... PHP скрипт устанавливает куки с домена sub.domain.ru/game.php, а потом они отправляются вместе с запросом на sub.domain.ru/api.php, где происходит их проверка.
Ответ написан
Комментировать
kravasuper
@kravasuper
и чо и чо?
Комментировать
Где вы тут увидели кросс-доменный запрос?
Скрипт с sub.domain.ru/game.php отправляет аякс на sub.domain.ru/api.php? Если да - то это не кросс-домен
Проблема в скриптах которые не дружат с IE
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы