Как отправить xml, используя Ajax запрос на другой домен?

$.ajax({
            type: 'POST',
            url: "https://domain.com",
            crossDomain: true,
            data: xml,
            dataType: 'xml',
            success: function(responseData, textStatus, jqXHR)
            {
                console.log(responseData);
            },
            error: function(responseData, textStatus, errorThrown)
            {
                console.log(responseData, textStatus, errorThrown);
            }
        });


Ошибка:
XMLHttpRequest cannot load https://domain.com  No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://demo.ua' is therefore not allowed access.
Как правильно отсылать такой запрос?
  • Вопрос задан
  • 20982 просмотра
Пригласить эксперта
Ответы на вопрос 5
maxaon
@maxaon
Если сервер не ваш, тогда сделать мало что получится. Можете использовать reverse proxy у себя для проксирования запросов. Например, Apache.
А если ваш, используйте CORS. Добавте заголовок "Access-Control-Allow-Origin" и будет работать.
Однако, если вам необходио отправлять POST запросы, тогда проверьте чтобы запросы не содержали дополнительных заголовков (к примеру "X-Requested-With: XMLHttpRequest"). Потому что при наличии доп заголовков, при небезопасном методе, дополнительно делается HEAD запрос, для получения заголовка "Access-Control-Allow-Headers".
Ответ написан
Комментировать
fornit1917
@fornit1917
По-хорошему для кроссдоменных запросов надо юзать JSONP.
Есть и другие варианты, например читать тут javascript.ru/ajax/cross-domain-scripting
Ответ написан
@mayorovp
Если сервер ваш - просто установите правильный заголовок Access-Control-Allow-Origin. Если сервер не ваш - делайте расширение для браузера, им отправлять запросы на другой домен можно*.
Ответ написан
Комментировать
@orest831 Автор вопроса
К сожалению сервер не мой.
Ответ написан
@xmeoff
@orest831 Прежде чем спрашивать, могли бы поискать здесь же похожие вопросы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы