XMLHttpRequest возвращает статус 0 в Firefox 3.6.10 и выше из запросов перекрестного источника - PullRequest
0 голосов
/ 07 октября 2010

Я разрабатываю приложение, которое отправляет перекрестный AJAX-запрос на HTTP-сервер, написанный с использованием Netty.

Пример типа выполняемого кода Javascript приведен ниже.

        $.ajax({
            type:"GET",
            url:"http://localhost:5000/someresource",
            data: { id1: "1", id2: "2" },
            success: function(status, textStatus, xhr) {
                alert("Success")
            },
            error: function(status, textStatus, xhr) {
                alert("Error")
            }
        });

Проблема, с которой я сталкиваюсь, заключается в том, что в Firefox (3.6.10 и 4.0 beta) статус XMLHttpRequestвсегда 0, независимо от статуса ответа.В firebug я вижу, что сервер возвращает правильный статус для запроса, но он не передается объекту XMLHttpRequest.

Ниже приведены заголовки запроса и ответа

Response Headers
Content-Type text/plain; charset=utf-8
Content-Length 0
Access-Control-Allow-Orig... http://localhost:9000
Cache-Control no-cache
Connection Keep-Alive
Date Thu, 07 Oct 2010 07:52:08 GMT

Request Headers
Host localhost:5000
User-Agent Mozilla/5.0.... 
Accept */*
Accept-Language en-gb,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Content-Type application/x-www-form-urlencoded
Referer http://localhost:9000/test
Origin http://localhost:9000

Я попытался выполнить код в Chrome, Opera и Safari, и все они работают нормально.Это то, что я делаю, или ошибка в Firefox?

Заранее спасибо.

1 Ответ

1 голос
/ 20 января 2011

Я видел эту проблему как в Firefox 3.6+, так и в Chrome.Причина, по которой я обнаружил, заключается в том, что я отлаживал сайт на сервере localhost.Оба из них будут возвращать соответствующие коды ответа только тогда, когда он запускается из удаленного URL-адреса.Они оба возвращают разные коды состояния для localhost.

...