Axios получает запрос от React до Spring Boot приложение возвращает ошибку сети - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть приложение SpringBoot с @Controller, которое принимает getRequest для localhost: 8080 / all и возвращает JSON.Я ввел этот домен в браузере и вижу возвращенный JSON.

Однако, когда я пытаюсь выполнить этот URL с помощью запроса получения Axios из моего приложения React (которое выполняется локально), а не возвращать данные JSON, он возвращает следующую ошибку:

Network Error at createError (http://localhost:3000/static/js/bundle.js:1634:15) at XMLHttpRequest.handleError (http://localhost:3000/static/js/bundle.js:1170:14)

Я проверил вкладку сети Chrome для запроса на получение, и он ничего не возвращает для предварительного просмотра или ответа, но указывает:

Request URL: https://localhost:8080/all
Referrer Policy: no-referrer-when-downgrade

в разделе Заголовки.

Обаприложения работают локально, и когда я пытаюсь получить другой запрос получения axios (для другого API), он успешно возвращает JSON.Как я могу успешно вернуть JSON из приложения Spring Boot?

Настройка React для вызова API:

  componentDidMount() {
    axios.get('https://localhost:8080/all')
    .then(function (response) {

      console.log(response);
    })
    .catch(function (error) {

      console.log(error);
    });
  }

А действие контроллера в приложении Spring Boot:

@RestController    
public class UserController {

    @Autowired
    UserJDBCDao dao;

    @GetMapping(path="/all")
    public @ResponseBody Iterable<User> getAllUsers() {
        // This returns a JSON or XML with the users
        return dao.findAll();
    }


}

1 Ответ

0 голосов
/ 10 декабря 2018

После проверки журнала ошибок Spring Boot было указано:

java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens

Поэтому я изменил https на http, и запрос сработал.Я не уверен, что это самый безопасный способ, поэтому у кого-то еще может быть лучшее решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...