Ajax.Request (Prototype v1.6.0.3) не работает в Chrome (последняя стабильная версия Mac)? - PullRequest
0 голосов
/ 17 августа 2011

Я отлаживаю свой код JavaScript, который до сих пор хорошо работает в большинстве браузеров ... но Chrome продолжает отказываться от моего Ajax.Request в данный момент. Пожалуйста, посмотрите на следующий код:

    var base = document.location.pathname.substr(0, document.location.pathname.indexOf('/',1));
    new Ajax.Request(base + '/status.json', {
        method : 'get',
        dataType : 'json',
        contentType : 'application/json',
        onSuccess : function(res) {
            updateProgressBar(res.responseJSON);
        },
        onFailure : function(res) {
            console.error("ProgressBar AJAX failed!");
        },
        onCreate : function(res) {
            console.error("ProgressBar AJAX onCreate!");
        },
        onUninitialized : function(res) {
            console.error("ProgressBar AJAX onUninitialized!");
        },
        onLoading : function(res) {
            console.error("ProgressBar AJAX onLoading!");
        },
        onLoaded : function(res) {
            console.error("ProgressBar AJAX onLoaded!");
        },
        onInteractive : function(res) {
            console.error("ProgressBar AJAX onInteractive!");
        },
        on200 : function(res) {
            console.error("ProgressBar AJAX on200!");
        },
        onComplete : function(res) {
            console.error("ProgressBar AJAX onComplete!");
        }
    });

Все эти onSomethings были добавлены для отладки ... Обычно мне нужен только onSuccess. Но это никогда не называется Chrome в данный момент. Он запускает только следующие события:

onCreate
onLoading

Вот и все. Нет onLoaded или что-то еще.

Это известная ошибка этой версии? Мы используем RichFaces v3.3.3.Final, который поставляется с ProtoType. Если это просто не сработает, я напишу свой собственный запрос AJAX для Chrome ... но я хочу убедиться, что сначала я не допустил простой ошибки. Спасибо.

PS: я видел Ajax прототипа. Запрос не работает в Chrome , который довольно старый ... поэтому я начал новую тему.

1 Ответ

0 голосов
/ 17 августа 2011

Я почти уверен, что у прототипа нет атрибута dataType, попробуйте удалить его и проверьте еще раз.

Вот параметры прототипа AJAX по умолчанию

this.options = {
    method:       'post',
    asynchronous: true,
    contentType:  'application/x-www-form-urlencoded',
    encoding:     'UTF-8',
    parameters:   '',
    evalJSON:     true,
    evalJS:       true
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...