java оставшийся вызов get url net :: ERR_FAILED - PullRequest
0 голосов
/ 11 февраля 2020

Я пишу вызов покоя, как показано ниже

authenticationService(username: string, password: string) {
    debugger;
    let params = new HttpParams();
    params = params.append('username', username);
    params = params.append('password', password);
    return this.http.get(`http://localhost:8080/api/v1/basicauth?`,{params},
      ).pipe(map((res) => {
        this.username = username;
        this.password = password;
      }));
  }

И с конца весенней загрузки я использую @RequestParams, как показано ниже

@GetMapping(path = "/basicauth")
    public AuthenticationBean helloWorldBean(@RequestParam(name = "username") String username,@RequestParam(name = "password") String password) {
        String status = authenticationService.isUserAuthenticated(username, password);
             return new AuthenticationBean("You are not authenticated");
    }

Я получаю сообщение об ошибке типа

! [This] 1

Пожалуйста, помогите мне в этом. Спасибо:)

1 Ответ

1 голос
/ 11 февраля 2020

Вы можете использовать встроенные параметры прокси, предоставляемые сервером Angular dev. Для получения дополнительной информации см. официальную документацию .

Создайте proxy.config. json в папке sr c и добавьте следующее содержимое:

src / proxy.config. json

{
    "/api": {
        "target": "http://localhost:8080",
        "secure": false,
        "changeOrigin": true
    }
}

Затем в файле AuthenticationService измените свой HTTP-вызов, как показано ниже:

this.http.get<any>('/api/v1/basicauth', { params }).subscribe();

Теперь запустите приложение Angular с следующие флаги:

ng serve --proxy-config src/proxy.config.json

АЛЬТЕРНАТИВНЫЙ ПОДХОД

angular. json

...
"architect": {
  "serve": {
    "builder": "@angular-devkit/build-angular:dev-server",
    "options": {
      "browserTarget": "your-application-name:build",
      "proxyConfig": "src/proxy.config.json"
    },
...

Теперь вы может, как обычно, с помощью команды ng serve без флага --proxy-config.

Примечание

  1. Теперь вы можете вызывать любую конечную точку, доступную ваш сервер localhost: 8080 без имени хоста, как показано выше, и он будет работать. Но учтите, что это будет работать только в настройке / рабочем процессе Dev.

  2. В более высоких средах, таких как Production, ваше приложение Angular должно размещаться в том же домене, что и серверная часть. сервер, чтобы избежать ошибок CORS. Но обратите внимание, что это не единственная доступная опция для преодоления ошибки CORS.

  3. Как видно из фрагмента кода, вам не нужно добавлять '?' в конце URL, поскольку он автоматически генерируется HttpClient, если вы устанавливаете объект params.

Надеюсь, это поможет ... Ура и удачного кодирования !!!

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