在使用 的 Angular 服务中HttpClient
,我创建了一个从 返回原始 HTTP 响应的方法POST
:
httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json'
//observe: 'response'
}),
observe: 'response' as 'body'
};
forgotLogin(requestData: PUMRequestData): Observable<HttpResponse<string>> {
return this.http.post<HttpResponse<string>>("http://...", requestData, this.httpOptions);
Run Code Online (Sandbox Code Playgroud)
然后在我的组件中,我只查看原始 http 响应中的状态和正文。
this.api.forgotLogin(pumRequestData).subscribe(response => {
this.hStatus = response.status;
this.hBody = response.body;
});
Run Code Online (Sandbox Code Playgroud)
问题是如果响应状态不在200
系列中,则HttpClient
抛出错误。在我的用例中,我只想获取请求状态和正文,而不管状态是什么,我想根据组件中的状态决定要采取的操作,而不是服务中的错误处理程序。我一直试图找出一些棘手的方法来在服务中创建一个错误处理程序,该处理程序只返回(可观察的)HTTP
响应,但一直无法做到——甚至不确定这是否是正确的方法。
那么当状态不是 200 系列时,如何将原始 http 响应返回给我的组件?
有没有办法在实体框架中设置 SQL 死锁优先级,而不必显式打开每个连接并在使用它之前发出 SQL 命令来设置该特定连接上的死锁优先级?
在任何地方使用显式连接并发出 SQL 死锁优先级命令是我迄今为止发现的唯一方法,这有点痛苦。
我目前正在不同应用程序中使用 Entity Framework 版本 5 和 6。
目的是在自动化应用程序(可以自行恢复/重试)中将死锁优先级设置为低,这样它们就不会在解决任何死锁问题时干扰用户应用程序。
注意:这个问题不是关于跟踪或防止实体框架中的死锁 - 这是另一个在这里其他地方处理得很好的主题。
例如,假设我正在创建一个简单的更改密码页面:
总的来说,我希望使用服务器端 Blazor 来消除编写单独 API 后端的需要。但是,我希望在客户端运行一些简单的验证代码 - 新密码和确认密码不匹配、密码复杂性等。某些 Blazor 方法可以在客户端、服务器端 Blazor 应用程序中运行吗?或者更好的是,相同的验证方法可以同时运行客户端和服务器端吗?
当然,我总是可以使用 JavaScript 进行客户端验证,但最好用 C# 编写所有代码。