node.js - Angular 2+ http.get() 卡在挂起状态
问题描述
我有一个 MEAN 应用程序。Angular CLI:7.1.4 节点:10.1.0 操作系统:win32 x64 Angular:7.1.4
最近来自 HttpClientModule 的 http 请求一直卡住并且没有发布到节点服务器: Img of chrome dev tools xhr pending request
nodejs 服务器(在本地和生产中运行(天蓝色 Web 应用程序)并不表示它曾经收到过请求。这种情况不一致。有时它会完成其他时间它只是挂起。这是从 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));
}}
角组件:
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 选项,但我只设法阻止自己。有时重新启动服务器将允许请求完成,但并非总是如此。
解决方案
我发现了问题,不好意思说是在 mssql 的 SQL 连接字符串中。我有 ((config,error)=>{}) 而不是正确的 (config,(err)=>{}); 这是在护照的反序列化用户功能中。没有什么比查看数千行代码来发现一个小问题更有趣的了。
推荐阅读
- android - PowerMock`thenReturn`不返回模拟静态方法的预期数据?
- ruby - 从连接帐户设置 Stripe 借记卡
- c# - NavigationView 使用后退按钮更改所选项目
- ruby-on-rails - Rails 使用 ActiveSupport::Cache::MemoryStore 在两个 api 调用之间保存变量(控制器方法)
- angular - Ionic/Angular 中预期的声明或声明
- bash - 在本机 bash 中读取/解析来自 BTMON 的流式输出?
- excel - 确定字符串是否是某个范围内日期前缀的算法
- callback - Dash Plotly 在两页中共享回调输入
- azure - Azure ACR - 如何通过 terraform 分配服务原则?
- microservices - 玩微服务——api网关和服务发现