Не удается получить результат Perl-скрипта через Ajax (проблема с политикой того же источника)

#javascript #ajax #perl #same-origin-policy #cors

#javascript #ajax #perl #политика того же источника #cors

Вопрос:

Итак, этот Perl-скрипт:

 http://hacheck.tel.fer.hr/xml.pl
  

вернет результат XML на основе данных формы POST, которые он получает.

У меня есть веб-страница на одном из моих доменов (ни один из которых не является hacheck.tel.fer.hr ), и я хотел бы использовать этот скрипт Perl через Ajax.

Теперь политика того же источника запрещает мне отправлять Ajax-запросы из моего домена следующим образом:

 $.post('http://hacheck.tel.fer.hr/xml.pl', {'textarea': '...'}, function(data) {
    // process data
});
  

Приведенный выше код выдает эту ошибку:

XMLHttpRequest не удается загрузить http://hacheck.tel.fer.hr/xml.pl . Origin http://ecmazing.com не разрешено Access-Control-Allow-Origin.

Я хотел бы знать, какие у меня есть варианты (я хотел бы иметь возможность использовать этот Perl-скрипт). Я знаю, что размещение моей веб-страницы в hacheck.tel.fer.hr домене, очевидно, решило бы мою проблему (и это на самом деле может быть выполнимо, но для этого мне придется связаться с администратором).

Но есть ли какие-либо альтернативы?

Я слышал о CORS. Можно ли это использовать для решения моей проблемы? Если я правильно понимаю, с CORS вы должны указать на сервере, что разрешен другой домен, и чем веб-страницы из этого другого домена могут получать ответы с вашего сервера (или что-то в этом роде) :) ?

Ответ №1:

Я слышал о CORS. Можно ли это использовать для решения моей проблемы?

Да, но только в браузерах, которые его поддерживают. Контроллер hacheck.tel.fer.hr пришлось бы его настроить.

Но есть ли какие-либо альтернативы?

Отправьте запрос через свой собственный сервер

Комментарии:

1. Ну, afaik, только IE6 и IE7 не поддерживают CORS — мне не нужно поддерживать эти браузеры, так что все в порядке.

2. Возможно, вы знаете, какое конкретно действие должен был бы выполнить администратор hacheck.tel.fer.hr ? Мои знания о серверах очень ограничены.

3. Специфика будет зависеть от рассматриваемого веб-сервера.

4. Хорошо, я надеюсь, что администратор знает о CORS тогда… :)