Мы внедрили прокси для приложения Angular 8, работающего на 4200, чтобы сервер API, работающий на Tomcat 8080, не работал - PullRequest
1 голос
/ 09 января 2020

Мы внедрили прокси для Angular 8 приложения, работающего на :4200, для внутреннего API, работающего на Tomcat 8080. не работает

с использованием angular версии, как показано ниже Angular CLI: 8.3.20 Узел: 12.13.1 ОС: win32 x64 Angular: 8.2.14

    let me mention changes we did.
    proxy.conf.json 
    {
      "/student/allstudent": {
        "target": "http://localhost:8080",
        "secure": false,
        "pathRewrite": {
          "^/student/allstudent": ""
        },
        "logLevel": "debug",
        "changeOrigin": true
      }
    }

    in `package.json` we added this line "start": "ng serve --proxy-config proxy.conf.json"
    In `angular.json` file we have added below proxy config under serve.
    "options": {
                "browserTarget": "PricingWorkBench-ui:build",
                "proxyConfig": "proxy.conf.json"
              },

    service method look like this in Angular 
    public getStudentDetails(): Observable<any> {
        return this.http.get("http://localhost:8083/student/allstudent").
          pipe(
            map((data: any) => {
             return data;
            })
          )
      }

Все еще мы получаем ошибку ниже, пожалуйста, помогите мне.

 Access to XMLHttpRequest at 'http://localhost:8083/student/allstudent' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
    core.js:6014 ERROR HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: "http://localhost:8083/student/allstudent", ok: false, …}

1 Ответ

1 голос
/ 09 января 2020

Если ваша конечная точка включена http://localhost:8083/student/allstudent.

Ваш proxy.conf. json должен быть:

{
    "/student/allstudent": {
        "target": "http://localhost:8083",
        "secure": false,
        "logLevel": "debug",
        "changeOrigin": true
    }
}

И ваш метод будет выглядеть следующим образом :

public getStudentDetails(): Observable<any> {
    return this.http.get("/student/allstudent").
        pipe(
            map((data: any) => {
                return data;
            })
        )
    }
}

Обычно этот маршрут оценивается как http://localhost:4200/student/allstudent, но прокси берет маршрут /student/allstudent и сопоставляет его с target, указанным в proxy.conf.json, что http://localhost:8083

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