Как решить "перенаправление было заблокировано политикой CORS: нет заголовка "Access-Control-Allow-Origin"?
Я работаю над приложением, используя vue js. В соответствии с моей настройкой мне нужно передать переменную в мой url-адрес при изменении настройки.
$.get('http://172.16.1.157:8002/firstcolumn/' + c1v + '/' + c1b, function (data) {
// some code...
});
но когда мое приложение попадает на url, он показывает следующий messsge.
не удалось загрузить http://172.16.1.157:8002/firstcolumn/2017-03-01/2017-10-26: перенаправление с 'http://172.16.1.157:8002/firstcolumn/2017-03-01/2017-10-26' to 'http://172.16.1.157:8002/firstcolumn/2017-03-01/2017-10-26/ 'был заблокирован политикой CORS: нет заголовка" Access-Control-Allow-Origin " на запрошенном ресурсе. Происхождение'http://localhost:8080 ' поэтому доступ запрещен.
6 ответов
в дополнение к тому, что awd упомянул о том, чтобы заставить человека, ответственного за сервер, реконфигурировать (непрактичное решение для локальной разработки) , я использую плагин change-origin chrome следующим образом:
https://chrome.google.com/webstore/detail/moesif-origin-cors-change/digfbfaphojjndkpccljibejjbppifbc
вы можете сделать ваш локальный dev-сервер (например: localhost:8080), чтобы казалось, что он исходит из 172.16.1.157:8002 или любого другого домена.
спасибо всем, я решил это расширение на chrome. https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi
спросите человека, поддерживающего сервер в http://172.16.1.157:8002/ чтобы добавить имя хоста к хостам Access-Control-Allow-Origin, сервер должен вернуть заголовок, подобный следующему с ответом -
Access-Control-Allow-Origin: yourhostname:port
Привет, если я правильно понял, Вы делаете XMLHttpRequest в другой домен, чем на Вашей странице. Таким образом, браузер блокирует его, поскольку он обычно разрешает запрос в том же происхождении по соображениям безопасности. Вам нужно сделать что-то другое, когда вы хотите сделать кросс-доменного запроса. Учебник о том, как достичь этого,использование CORS.
при использовании postman они не ограничены этой политикой. Цитата из Кросс-Происхождения XMLHttpRequest:
обычные веб-страницы могут использовать объект XMLHttpRequest для отправки и получения данных с удаленных серверов, но они ограничены той же политикой происхождения. Расширения не так ограничены. Расширение может общаться с удаленными серверами за пределами своего источника, если оно сначала запрашивает разрешения перекрестного происхождения.
вы делаете запрос на внешний домен 172.16.1.157:8002/
от вас локальный сервер разработки, поэтому он дает исключение cross origin.
Либо вы должны разрешить headers Access-Control-Allow-Origin:*
как в интерфейсе, так и в бэкэнде или альтернативно используйте это расширение переключатель заголовка cors-расширение chrome если вы хозяин backend и frontend на одном домене.
$.get('https://172.16.1.157:8002/firstcolumn/' + c1v + '/' + c1b, function (data) {
// some code...
});
просто поставьте "https".