Невозможно выполнить запрос на получение с помощью axios и ReactJS - PullRequest
0 голосов
/ 21 мая 2018

Я занимаюсь разработкой веб-приложения с помощью ReactJS и хочу выполнить запрос GET с помощью axios.Сначала я попытался со следующей строкой:

axios.get("http://localhost:8080/MyWebApplication/MyServlet").then(data=>{
    //Code
});

Но я получил следующую ошибку:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8080/WebApplication1/NewServlet. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

Позже я попытался добавить заголовок для решения проблемы

axios.get("http://localhost:8080/WebApplication1/NewServlet", {headers:{'Access-Control-Allow-Origin': '*'}}).then(data=>{
    //code
});

Но проблема осталась.Что не так?

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Access-Control-Allow-Origin - заголовок ответа, а не заголовок запроса.Ваш сервер должен ответить Access-Control-Allow-Origin - так он сообщает браузеру, что некоторые запросы кросс-источника в порядке и должны быть разрешены.

Ссылка: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin

0 голосов
/ 21 мая 2018

Значение по умолчанию для crossDomain следующее:

false для запросов того же домена, true для запросов crossDomain

Если вы делаете запрос json для того же домена, и ваш сайт может перенаправитьзапросите другой домен для обработки ответа (через HTTP 3XX), а затем установите для свойства crossDomain значение true, чтобы ответ мог быть прочитан вызывающим сценарием.

Это дает вам преимущество при получении JSON при созданиите же исходные запросы и функциональность JSONP при выполнении перекрестных запросов.Если CORS активен в домене, на который вы перенаправляете, вы можете установить jsonp: false в опциях запроса.

 axios.get("http://localhost:8080/WebApplication1/NewServlet",{ crossDomain: true }).then(data=>{
    //Logic of your code
 });
...