Я получаю ошибку контроля доступа - PullRequest
0 голосов
/ 27 мая 2011

Почему я получаю эту ошибку при попытке прочитать удаленный канал xml?

XMLHttpRequest cannot load http://www.companyname.com/external.php?type=xml. Origin http://intranet is not allowed by Access-Control-Allow-Origin.

Это скрипт, который я использую для получения файла XML:

$(document).ready(function() {
    get_xml_feed();

    function get_xml_feed() {
        $.ajax({
            url: 'http://www.companyname.com/external.php?type=xml',
            type: 'GET',
            dataType: 'xml',
            error: function(xhr, status, error) {
                console.log(status);
                console.log(xhr.responseText);
            },
            success: function(xml) { 
                $(xml).find('items').each(function(){
                    var id = $(this).attr('guid');
                    var title = $(this).find('title').text();
                    var date = $(this).find('pubDate').text();
                    var url = $(this).find('link').text();

                    $('.divContent').empty().append(title + " - " + date + " - " + url + "<br />");
                });
            }
        });
    }
});

1 Ответ

4 голосов
/ 27 мая 2011

Поскольку вы нарушаете ту же политику происхождения .AJAX-запросы можно отправлять только на URL-адреса, принадлежащие тому же домену, что и тот, на котором размещен ваш сценарий.

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

Другая возможность заключается в использовании JSONP , но этот удаленный домен должен поддерживать его.

...