Запрос Mootools - не может заставить примеры работать - PullRequest
1 голос
/ 27 декабря 2008

Я скачал примеры как для Request, так и для Request.HTML и не могу заставить их работать. Я разархивировал их в папку и перешел к их index.html, чтобы выполнить их как есть, но ответ всегда был «Запрос не выполнен». без подсказок, почему.

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

Любая помощь будет потрясающей.

Приветствия

Джастин.

Ответы [ 4 ]

1 голос
/ 26 марта 2009

Почти любой веб-сервер должен работать. Просто ваша файловая система не «отвечает» на запросы браузера, как веб-сервер:

ajax-запросы, которые выполняются локально (против файловой системы) не работают хорошо, потому что логика AJAX ищет изменения состояния и ответ сервера, ни один из которых не является предоставляется вашей файловой системой

- http://forum.mootools.net/viewtopic.php?id=5009

Объект XMLHttpRequest может обрабатывать не только HTTP-запросы, но, по крайней мере, в mootools, это не предназначено. И «file: /// ...» не является HTTP-запросом. Он просто берет файл из вашей файловой системы и отображает его в браузере.

Итак, хорошие новости: любой веб-браузер, включая даже обычный, работающий на вашем локальном компьютере, должен нормально работать:)

1 голос
/ 27 декабря 2008

Если я правильно помню, запросы AJAX в большинстве браузеров не могут быть выполнены через локальную файловую систему - вам нужен настоящий веб-сервер, такой как Apache. В Windows XAMPP поможет вам запустить Apache за считанные минуты.

0 голосов
/ 11 мая 2010

XMLHttpRequest() успешно, потому что нет ничего плохого в том, чтобы сделать местный вызов. это просто отличается, и проблема в глючной функции mootools isSuccess. Вы должны отменить это Request опции. Вот как это делает jquery

    // Determines if an XMLHttpRequest was successful or not
httpSuccess: function( xhr ) {
    try {
        // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
        return !xhr.status && location.protocol === "file:" ||
            // Opera returns 0 when status is 304
            ( xhr.status >= 200 && xhr.status < 300 ) ||
            xhr.status === 304 || xhr.status === 1223 || xhr.status === 0;
    } catch(e) {}

    return false;
},
0 голосов
/ 27 декабря 2008

Brilliant !! Спасибо большое! Я загрузил его на ближайший веб-сервер и, конечно же, он работает.

Я попытался выполнить некоторые Ajax-вызовы непосредственно из моей файловой системы без каких-либо библиотек javascript - используя XMLHttpRequest () - и это работало нормально, так что это выглядит странным ограничением. Могу ли я быть уверен, что это всегда будет работать с любого веб-сервера, пусть даже базового? Просто в этом проекте, над которым я работаю, будут использоваться несколько сред хостинга, в основном просто простые сайты типа HTML, для клиентских сред, которыми я не буду управлять ... Существует ли минимальная спецификация?

Ура;)

...