Angular 2+ http.get () застрял в состоянии ожидания - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть приложение MEAN.Angular CLI: 7.1.4 Узел: 10.1.0 ОС: win32 x64 Angular: 7.1.4

В последнее время http-запросы от HttpClientModule зависали и не публиковались на сервере узла: Img of chromedev tools xhr ожидающий запрос

Сервер nodejs (работающий локально и в производственном режиме (веб-приложение Azure) не указывает, что он когда-либо получал запрос. Это происходит непоследовательно. Иногда он завершается, а иногда простозависает. Вот фрагмент вызова testConnection из Angular на сервер:

Служба Angular

import { Injectable } from '@angular/core';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { throwError } from 'rxjs';
import { catchError } from 'rxjs/operators';
import { environment } from '../../environments/environment';
const Headers: any = { withCredentials: true, responseType: 'json', headers: { 'Content-Type': 'application/json' } };

@Injectable({
  providedIn: 'root',
})
export class UserService {
  constructor(private _http: HttpClient) {}
    loginStatus() {
      return this._http.get(`${environment.serverURL}/api/login-status`, Headers).pipe(catchError(this.handleError));
    }}

Компонент Angular:

ngOnInit() {
this._userSvc.loginStatus().subscribe(
(result:any)=>{console.log(result)},
(error:any)=>{console.log(error)})
}

Узел / экспресс:

router.get('/login-status', (req, res, next) => {    
  if (req.isAuthenticated()) {
    res.status(200).json(req.user);
  } else {
    res.status(403).json({
      success: false,
      error: 'User not Authenticated',
      message: "Please return to the login in page and try again."
    })
  }
})

Узел использует паспорт для аутентификации

Не связывайтесь с проблемой паспорта, потому что не всегда этот маршрут дает сбой. У меня есть простые маршруты, которые не проверяют и просто возвращаютнекоторый текст, который тоже не срабатывает.

Я пытался изменить параметры CORS, но мне удалось заблокировать только себя. Иногда перезапуск сервераОтложите запрос до конца, но не всегда.

1 Ответ

0 голосов
/ 28 февраля 2019

Я нашел проблему, и мне стыдно сказать, что она была в строке соединения SQL для mssql.У меня было ((config, error) => {}) вместо правильного (config, (err) => {});Это было в десериализации пользовательской функции паспорта.Ничего подобного, просматривая тысячи строк кода, чтобы обнаружить одну маленькую проблему.

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