У меня проблема с вызовом AJAX в JQuery. Он работает на Chrome, FF и Safari, но не на IE. На самом деле в IE ничего не происходит, ошибок нет, данные не загружаются.

Вот код:

    $(document).ready(function() {

     $.ajaxSetup({ cache: false });

        $.get("ShoppingCart2.aspx", { }, function(data) {
           //query the jq object for the values

        alert(data);       
        alert($(data).find('#Items').text());


        var intI = parseInt(($(data).find('#Items').html()));

С помощью данных оповещения я нахожу все данные со страницы, с которой я звоню, но, к сожалению, мои методы data.find не работают в IE. Я не уверен, код это или браузер, но я действительно застрял. Спасибо вам за помощь.

Изменить: я добавил в кеш: ложная команда, но все же мне не повезло. Я действительно не могу понять, почему это не будет работать в IE.

1
Daniel 26 Июл 2010 в 17:05

4 ответа

Лучший ответ

Ну, я не смог заставить .find часть .get работать в Internet Explorer, но я нашел способ получить нужную мне информацию ajax:

Var information = $ .ajax ({тип: "GET", dataType: "html", url: "ShoppingCart2.aspx", data: querystring, async: false}). responseText + "";

Это передает строку запроса на сайт, а затем возвращает информацию с сайта обратно в одну большую строку. Затем я манипулировал этой строкой, чтобы получить то, что мне было нужно. К сожалению, это намного медленнее, чем команда .get, но это исправление.

Спасибо всем за помощь!

0
Daniel 28 Июл 2010 в 18:47

Попробуйте это (один раз на вашей странице / внешнем js, перед вашими вызовами AJAX):

$.ajaxSetup({ cache: false });

IE любит кешировать вещи, и если вы тестировали и у вас не было контента в какой-то момент, скорее всего, IE его держит. Использование $.ajaxSetup() и указание по умолчанию не кэшировать результаты AJAX должны решить эту проблему. Если вам интересно, он прикрепляет временную метку к URL-адресу в качестве прерывателя кэша под прикрытием, используйте fiddler, чтобы увидеть, как это происходит.

2
Nick Craver 26 Июл 2010 в 13:07

Возможно, это кеширование AJAX? Что произойдет, если вы поместите это перед своим кодом:

$.ajaxSetup({ cache:false });
0
Dan 26 Июл 2010 в 13:08

Быстрое решение без кодирования может состоять в том, чтобы нажать CTRL + F5, чтобы очистить кеш при обновлении.

0
Liam Spencer 26 Июл 2010 в 13:12