Доступ к XMLHttpRequest был заблокирован политикой CORS - PullRequest
0 голосов
/ 12 ноября 2018

У меня проблема, когда я пытаюсь выполнить запрос PATCH в угловом веб-приложении. В моем бэкэнде у меня есть:

app.use((req, res, next) => {
    res.set({
        "Access-Control-Allow-Origin": "*",
        "Access-Control-Allow-Methods": "*",
        "Access-Control-Allow-Headers": "'Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token'",
    });

    next();
});

В моем веб-интерфейсе я:

  patchEntity(ent: any, id) {
    let headers = new Headers({ 'Content-Type': '*' });
    let options = new RequestOptions({ headers: headers });
    return this.http.patch('my_url', ent).map((res: Response) => res.json());
  };

Ошибка:

Access to XMLHttpRequest at 'my_url' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

Что я могу сделать? Благодаря.

Ответы [ 2 ]

0 голосов
/ 08 августа 2019

используйте это в узле

app.use(function (req, res, next) {
//Enabling CORS
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, 
Accept, x-client-key, x-client-token, x-client-secret, Authorization");
  next();
});

А в угловом запросе

 auth(login): Promise<any> {
 return new Promise((resolve, reject) => {
   this._http.post('url:3000/api/auth/login', { ...login })
     .subscribe((response: any) => {
       resolve(response);
     });
 });
}
0 голосов
/ 27 июня 2019

Эта проблема не связана с угловым кодом вашего внешнего интерфейса, она связана с бэкэндом,

Попробуйте выполнить следующие шаги в своем коде сервера:

1. npm install cors

2.put app.use(cors()) в основном файле экспресс-маршрута. (Включает все запросы CORS)

может быть, это работает для вас.

ссылка: https://expressjs.com/en/resources/middleware/cors.html

...