#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 тогда…
:)