Успех ajax не запускается в Firefox - PullRequest
0 голосов
/ 17 февраля 2010

У меня есть странная проблема, которую я не могу решить после нескольких часов поиска в Google.Способ создания моего веб-приложения не очень оптимален, но сейчас я ничего не могу с этим поделать.

Я создал пользовательский элемент управления в C #.Этот пользовательский контроль размещается на странице aspx, которая находится внутри iframe, и эта страница снова находится внутри фрейма.(Не оптимально).

Но я думаю, что единственная важная вещь - это внешняя рама.Страница хостинга находится в другом домене, чем другие страницы / части.

Внутри этой рамки находится мой код.У меня есть JQuery скрипты, которые обновляют данные при обнаружении новых данных на сервере.Для получения данных я использую jquery-ajax.

 var indexURL = "/data/indexProxy.aspx";

__LOG("Lets get the XML");
$.ajax({
    url: indexURL,
    type: 'GET',
    dataType: 'xml',
    contentType: "text/xml; charset=\"utf-8\"",
    error: function(request, error) {
        alert('Error loading XML document' + request + error);
    },
    success: function(xml) {
        __LOG("ajax success...");
        OnSucceededXml(xml);
    }
});

Функция __LOG просто записывает в консоль firebug.

Так что этот код работает отлично, пока что-то не произойдет.Не совсем уверен, как это происходит, но иногда, когда функция дает сбой или нарушается, она просто перестает работать.Я думаю, что это связано с перезагрузкой страницы внутри функции ajax.

После этого функция успеха никогда не срабатывает.В потреблении firebug я вижу сообщение «Давайте получим XML», я вижу, что ajax-вызов - это триггеры и возвращает 200 или 304 (без изменений).Но __LOG внутри успеха не вызывается ни функцией.

Чтобы заставить его работать снова, я должен полностью перезапустить Firefox и иногда очистить кеш.

Если я открою страницу, которая находится внутрирамка другого домианина, за рамкой, все снова работает, но я не могу сделать это как часть приложения.

Кто-нибудь испытал что-то подобное?Кроме того, я не думаю, что это относится к jquery, так как я использовал некоторые вещи, похожие на более старые сценарии.

Спасибо

Endre

Ответы [ 2 ]

0 голосов
/ 17 февраля 2010

Вы МОЖЕТЕ попытаться ввести async: false, в свой звонок.

Обратите внимание, что вы подразумеваете под "перезагрузкой страницы внутри функции ajax".

0 голосов
/ 17 февраля 2010

Это может быть связано с тем, что вы выполняете междоменный запрос в Firefox, который, я считаю, запрещен политикой Firefox по умолчанию. Очевидно, вы можете настроить значение , но для сайтов, работающих в Интернете, я не думаю, что это сработает, и вам придется искать другой путь.

Вы отслеживали вывод из окна консоли в Firebug?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...