Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > $.getJSON & $.post не работает в IE


Автор: Guedda 12.7.2012, 10:01
Добрый день, уважаемые.
Есть сайт (допустим, http://test.com) и есть сервис (допустим, http://test2.com)
И есть такие конструкции:
Код

$(document).ready(function() {
    $.getJSON('http://test2.com/get_data', function(data) {
        console.log(data);
    })

    $.post('http://test2.com/post_data', {'id': 123}, function(data) {
        console.log(data);
    })
});


Так вот во всех браузерах data возвращается. А в IE в эту конструкцию даже не входит. В чем может быть проблема???

Заранее благодарен за ответы.

Автор: Sanchezzz 12.7.2012, 13:21

попробуйте  полную версию а не урезанные функции надстройки
Цитата

$.ajax({
    url : 'http://test2.com',  
    type : 'post',
    dataType: 'html',  /*json , xml , text ...*/
    success : function( data, textStatus, jqXHR ) {
            alert( 'ok' );
    },
    error : function( data, textStatus, jqXHR ) {
        alert( jqXHR ); // вот сюда и попадаем сразу
    }
});


JS на клиенте отсылается на тот же домен или на другой если на другой то это крос-доменный запрос а их браузер блокирует если от сервера нет заголовка
Access-Control-Allow-Origin: * или список разрешенных сайтов.

Полные пути не рекомендую использовать лучше относительные от корня сайта /ajax.php.

Автор: Guedda 12.7.2012, 13:28
Цитата(Sanchezzz @  12.7.2012,  14:21 Найти цитируемый пост)
попробуйте  полную версию а не урезанные функции надстройки

Пробовал - не помогает.

Цитата(Sanchezzz @  12.7.2012,  14:21 Найти цитируемый пост)
JS на клиенте отсылается на тот же домен или на другой

Домен тот же. Поддомен другой (AJAX стучится к api.test.com с dev.test.com). 

Цитата(Sanchezzz @  12.7.2012,  14:21 Найти цитируемый пост)
если от сервера нет заголовка
Access-Control-Allow-Origin: * или список разрешенных сайтов.

api.test.com посылает этот хедер:
Код

header('Access-Control-Allow-Origin: *');

Но все равно ничего не получается.

Кстати, мне посоветовали использовать jsonp, но что-то я не понимаю про него ничего, да и думаю что мою проблему можно решить.

Автор: Aliance 12.7.2012, 17:05
Цитата(Guedda @  12.7.2012,  11:01 Найти цитируемый пост)
Так вот во всех браузерах data возвращается. А в IE в эту конструкцию даже не входит. В чем может быть проблема???

может быть в том, что в IE ничего не знает о переменной console? Что дебаггер говорит, undefined variable console?

Автор: Guedda 13.7.2012, 13:11
Цитата(Aliance @  12.7.2012,  18:05 Найти цитируемый пост)
может быть в том, что в IE ничего не знает о переменной console?

Знает он все (F12 нажми и будет тебе счастье). В других местах если поставить console.log - все хорошо.

Автор: Aliance 13.7.2012, 17:26
Guedda, может лучше F13?  smile 
ИЕ 6 не знает ничего о переменной console. Ведь версия ИЕ не указана, я и сделал предположение.

Дебаггер-то какую ошибку выдает?

Автор: Guedda 14.7.2012, 08:43
Цитата(Aliance @  13.7.2012,  18:26 Найти цитируемый пост)
ИЕ 6

Он еще существует?  smile  smile  smile 

Цитата(Aliance @  13.7.2012,  18:26 Найти цитируемый пост)
Дебаггер-то какую ошибку выдает? 

Ах если бы он что-нибудь выдавал... Молчит, котяра :( Пишет, что не может найти картинку (404), но, я думаю, что к теме это никакого отношения не имеет.

Автор: Aliance 16.7.2012, 09:51
У меня, например, есть только 6ая версия ИЕ  smile Да и более старшими-то я пользовался от силы пару раз, там есть возможность мониторинга xhr-запросов как в хроме? Тогда можно было бы понять вообще кусок кода этот выполняется или нет. Есть данный скрипт есть в сети, может есть смысл кинуть сюда линк, я хоть в хроме посмотрю smile

Автор: Guedda 18.7.2012, 09:13
В общем, все советуют мне использовать jsonp, но насколько я понял, jsonp работает только с GET запросами. А мне необходимы POST запросы, так как данных для отправки достаточно.
Вопрос остается открытым.

Автор: baldina 18.7.2012, 10:05
а что написано в doctype?

Автор: Guedda 18.7.2012, 10:07
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Автор: baldina 18.7.2012, 10:09
и разметка действительно строго соответствует?

Добавлено через 1 минуту и 24 секунды
ie весьма чувствителен к таким вещам

Автор: Guedda 18.7.2012, 11:28
firefox валидатор w3c ни одной ошибки и варнинга не показывает. Вроде как все норм.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)