сделать javaScript вызов для использования REST API, работающего на localhost - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть микросервис java -springboot, работающий на порте 8080 и сервере localhost. Это выглядит так:

@RequestMapping("/user")
@RestController
public class UserController {

    @Autowired
    UserService userService;

    @RequestMapping(method = RequestMethod.GET, value = "")
    public User getUser() {
        return userService.getUser();
    }
}

Я пытаюсь получить доступ к данным пользователя с помощью вызова "http://localhost: 8080 / user ". При тестировании через браузер и почтальон вызов возвращает данные. Но с javacript он возвращает пустой ответ.

Я новичок в js.

Мой javascript код выглядит так:

function getCurrentUser()
{
    try
    {
        var userUrl = "http://127.0.0.1:8080/user";
        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() {
            try
            {
                if (this.readyState == 4 ) {
                    var response = this.responseText;
                    document.getElementById("idCurrentName").innerHTML = response;              
                }
            }
            catch(erMs)
            {
                document.getElementById("idCurrentName").innerHTML = erMs;
            }
        };
        xhttp.open("GET", userUrl, true);
        xhttp.setRequestHeader('Content-Type', 'text/plain');
        xhttp.send();
    }
    catch(erMsg)
    {
        document.getElementById("idCurrentName").innerHTML = erMsg;
    }
}

Пожалуйста помощь в доступе к данным на loclhost. Спасибо !!

1 Ответ

0 голосов
/ 25 апреля 2020

Проблема была связана с CORS. Сначала я добавил расширение браузера chrome, но затем, когда я использую SpringBoot в бэкэнде для своих сервисов, я добавил аннотацию @CrossOrigin на свой RestController. Это решило проблему с CORS.

Надеюсь, это поможет.

Код бэкэнда теперь выглядит следующим образом:

@CrossOrigin
@RequestMapping("/user")
@RestController
public class UserController {

    @Autowired
    UserService userService;

    @RequestMapping(method = RequestMethod.GET, value = "")
    public User getUser() {
        return userService.getUser();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...