Включение кросс-доменного доступа в WEBHDFS REST Api будет использоваться JavaScript?
Я пытаюсь получить списки состояний из API-интерфейса resthdfs, но получаю следующую ошибку.
XMLHttpRequest cannot load http://<IP>:50070/webhdfs/v1/?op=LISTSTATUS. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
Он успешно загружается, когда я пытаюсь получить доступ через curl. Но это не удается, когда я пытаюсь получить его с помощью AngularJS $http.get
,
Есть ли способ включить кросс-доменный доступ в Hadoop core-site.xml или где-то еще?
1 ответ
Если я правильно понял, вы делаете запрос XMLHttpRequest в другой домен, чем ваша страница. Таким образом, браузер блокирует его, поскольку он обычно позволяет запрос в том же источнике по соображениям безопасности. Вам нужно сделать что-то другое, когда вы хотите сделать междоменный запрос. Учебник о том, как этого добиться, использует CORS.
Когда вы используете почтальон, они не ограничены этой политикой. Цитируется из перекрестного источника XMLHttpRequest:
Проверьте это в браузере Firefox, это может работать или иначе..
Я полагаю, что это может быть связано с тем, что Chrome не поддерживает localhost для прохождения Access-Control-Allow-Origin - см. Проблему Chrome
Чтобы Chrome отправлял Access-Control-Allow-Origin в заголовке, просто добавьте псевдоним localhost в файле / etc / hosts к другому домену, например:
127.0.0.1 localhost yourdomain.com Тогда, если вы захотите получить доступ к вашему сценарию, используя yourdomain.com вместо localhost, вызов должен завершиться успешно. (или) Это проблема сервера. Вы должны настроить заголовки ответа на стороне сервера.