Javascript I';我无法使用FormGroup 6发出post请求
我是angular的新手,我无法使用formGroup发出post请求。正在为我拥有的所有字段发送正文。但是,由于以下错误,出现错误400(错误请求):{“状态”:“错误”,“错误”:{“消息”:"在上一个操作完成之前,在此上下文上启动了第二个操作。这通常是由使用同一DbContext实例的不同线程引起的,但是实例成员不能保证是线程安全的。如果是这种情况,也可能是由客户端上正在求值的嵌套查询引起的重写查询嵌套调用。“}},我有点理解错误是关于什么的,但我不理解我的代码有什么问题。提前谢谢 register.model.tsJavascript I';我无法使用FormGroup 6发出post请求,javascript,html,angular,forms,typescript,Javascript,Html,Angular,Forms,Typescript,我是angular的新手,我无法使用formGroup发出post请求。正在为我拥有的所有字段发送正文。但是,由于以下错误,出现错误400(错误请求):{“状态”:“错误”,“错误”:{“消息”:"在上一个操作完成之前,在此上下文上启动了第二个操作。这通常是由使用同一DbContext实例的不同线程引起的,但是实例成员不能保证是线程安全的。如果是这种情况,也可能是由客户端上正在求值的嵌套查询引起的重写查询嵌套调用。“}},我有点理解错误是关于什么的,但我不理解我的代码有什么问题。提前谢谢 reg
export class User{
FirstName: string;
LastName: string;
UserName: string;
Email: string;
Password: string;
}
register.service.ts
RegisterUser(user: User){
return this.http.post('url', user);
}
register.component.html
<form [formGroup]="registerForm" (ngSubmit)="onSubmit()">
<div class="form-group row">
<label class="col-sm-3 col-form-label">First Name:</label>
<div class="col-sm-3">
<input type="text" formControlName="FirstName" class="form-control"
placeholder="First Name" ngModel>
</div>
</div>
<div class="form-group row">
<label class="col-sm-3 col-form-label">Last Name:</label>
<div class="col-sm-3">
<input type="text" formControlName="LastName" class="form-control"
id="LastName" placeholder="LastName" ngModel>
</div>
</div>
<div class="form-group row">
<label for="UserName" class="col-sm-3 col-form-label">Username:</label>
<div class="col-sm-3">
<input type="text" formControlName="UserName" class="form-control"
placeholder="User Name" ngModel>
</div>
</div>
<div class="form-group row">
<label for="Email" class="col-sm-3 col-form-label">Email:</label>
<div class="col-sm-3">
<input type="email" formControlName="Email" class="form-control"
placeholder="example@example.com" ngModel>
</div>
</div>
<div class="form-group row">
<label for="password" class="col-sm-3 col-form-label">Password:</label>
<div class="col-sm-3">
<input type="password" formControlName="Password" class="form-control"
placeholder="*********" ngModel>
</div>
</div>
<br>
<p class="text-center">Already have an account? <span>
<button (click)="goToSignIn();" class="unstyled-button">Sign In.</button>
</span></p>
<button type="submit" class="button button4">Sign Up</button>
</form>
试着这样做:
registerUser(user) : Observable<any> {
return this.http.post<any>('url', JSON.stringify(user), this.httpOptions).pipe(
tap((user) => console.log(`user sent : ${JSON.stringify(user)}`)),
catchError(this.handleError)
);
httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json'
})
})
对于捕获错误:
handleError(error) {
let errorMessage = '';
if(error.error instanceof ErrorEvent) {
// Get client-side error
errorMessage = error.error.message;
} else {
// Get server-side error
errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
}
window.alert(errorMessage);
return throwError(errorMessage);
}
试着这样做:
registerUser(user) : Observable<any> {
return this.http.post<any>('url', JSON.stringify(user), this.httpOptions).pipe(
tap((user) => console.log(`user sent : ${JSON.stringify(user)}`)),
catchError(this.handleError)
);
httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json'
})
})
对于捕获错误:
handleError(error) {
let errorMessage = '';
if(error.error instanceof ErrorEvent) {
// Get client-side error
errorMessage = error.error.message;
} else {
// Get server-side error
errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
}
window.alert(errorMessage);
return throwError(errorMessage);
}
这不是您遇到的javascript错误。这是来自实体框架的错误 您的DBContext同时被两个线程使用。可能是同一请求中的两个线程使用了它 检查DBContext是否由于某些原因而声明为静态
您需要共享您的api代码,以便我们调试您的问题。这不是您遇到问题的javascript错误。这是来自实体框架的错误 您的DBContext同时被两个线程使用。可能是同一请求中的两个线程使用了它 检查DBContext是否由于某些原因而声明为静态
您需要共享您的api代码,以便我们调试您的问题。感谢您的回复,事实上我仍然收到相同的错误,顺便说一句,当我没有使用formGroup时,它工作正常,我使用的是ngModel,然而,当我尝试使用formGroup时,它出现了这个错误谢谢您的回复,事实上我仍然收到了同样的错误,顺便说一句,当我没有使用formGroup时,它工作了,我使用的是ngModel,然而,当我尝试使用formGroup时,它出现了这个错误谢谢你的回答,实际上它在以前工作时,我没有使用formGroup,我没有更改代码中的任何内容,只是删除了ngModel并使用了foRMGROUP您是否将控制台的有效负载与这两种方法进行了比较?我的猜测是,您发送的不同数据会影响后端代码的执行。因为我们没有这两种方法,所以我们无法为您执行。如果您发布有效负载,那么我们可以假设为什么我确信api没有问题有效负载是指当我从控制台获取数据并将其粘贴到Postman时,所有操作都会将您的代码还原到ngModel,然后再次并排检查您发送的内容。不仅是有效负载,还有标题。我的想法是,某些筛选器或数据未正确发送,因此后端出现故障。然后您正在编写一些内容r数据库(可能错误)使用相同的db上下文失败。如果我是你,我会在api代码中添加一个断点并检查那里发生了什么。好的,这已经解决了,我按照你说的做了,我发现问题是我无法在登录时注册用户,所以我必须清除会话才能注册新用户谢谢你的回复nse,实际上它以前在我不使用formGroup时工作,我没有在代码中更改任何内容,只是删除了ngModel并使用了formGroup。您是否将控制台中的负载与这两种方法进行了比较?我猜您发送的数据不同,会影响后端代码的执行。因为我们没有两者都有,那么我们就不能为你做。如果你发布有效负载,那么我们可以假设为什么api的有效负载没有问题,原因是当我从控制台获取数据并将其粘贴到Postman时,所有工作都会将你的代码还原到ngModel,然后并排检查你发送的内容。不仅有效负载我的想法是一些筛选器或数据没有正确发送,因此后端出现了一些问题。然后,您在数据库中写入了一些内容(可能是错误)使用相同的db上下文并失败。如果我是你,我会在api代码中添加一个断点,然后检查那里发生了什么。好的,这已经解决了,我按照你说的做了,我发现问题是我无法在登录时注册用户,所以我必须清除会话才能注册新用户