XMLHttpRequest не может загрузить - PullRequest
       38

XMLHttpRequest не может загрузить

0 голосов
/ 27 сентября 2011

Я пытаюсь получить доступ к ресурсам с нескольких серверов, используя AJAX, и сталкиваюсь с этой проблемой:

XMLHttpRequest cannot load http://first.mydomain.com. Origin http://second.mydomain.com is not allowed by Access-Control-Allow-Origin.

со следующим кодом

    for ( i in domains )
    {
        var url = 'http://'+domains[i]+'/mgmt/json/queue_status.php';
        requests[i]=new request(url);
        break;
    }

    function request(url)
    {
        var queues = {};
        http_request = new XMLHttpRequest();
        http_request.open("GET", url, true, 'username', 'password');
        http_request.onreadystatechange = function () {
            var done = 4, ok = 200;
            if (http_request.readyState == done && http_request.status == ok) {
                queues = JSON.parse(http_request.responseText);
                var queuesDiv = document.getElementById('queues');
                print_queues(queues, queuesDiv);                
            }
        }
        http_request.send(null);
    }

Я добавил следующее к запрашиваемой странице ответа.

header('Access-Control-Allow-Origin: *');

Я также безуспешно пытался назвать имя запрашивающей стороны.

Спасибо

PS: приведенный выше код, я уверен, не идеален, но работает нормально только при попытке запроса ресурса хост-сервера.

1 Ответ

0 голосов
/ 27 сентября 2011

имя пользователя и пароль не допускаются в запросах перекрестного происхождения.

Выдает исключение INVALID_ACCESS_ERR, если в качестве аргумента передается либо пользователь, либо пароль, а источник URL не соответствует источнику XMLHttpRequest.

источник: http://www.w3.org/TR/XMLHttpRequest2/#the-open-method

Просто передайте пароль и имя пользователя как переменную get.

...