我是angular的新手,并尝试在Angular 9中使用web API。我的http get请求工作正常,但当我发送hhtp post请求时,我发现以下错误区域-evergreen.js:2845 POST http://127.0.0.1:8000/insert 500 (内部服务器错误) post请求中的core.js:6189错误我已经创建了一个用户组件和一个服务。我创建的web API是在LARAVEL.I中的。我使用邮递员工具提交GET/PUT/ post /DELETE,这些请求工作得很好,但在angular中get请求可以工作,post请求不能工作。我找不到以下errors.Please的原因,我请求帮助我解决这个问题。我将非常感激。我的不同文件的代码如下所示
**user.service.ts**
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class UserService {
constructor(private http: HttpClient) { }
getUser(): Observable<any> {
return this.http.get('http://127.0.0.1:8000/basic');
}
addUser(form: any): Observable<any> {
return this.http.post('http://127.0.0.1:8000/insert', form);
}
}
create-user.component.html
<br><br>
<form #form="ngForm" (submit)="onSubmit(form)">
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" name="name" ngModel placeholder="Enter Name">
<small id="emailHelp" class="form-text text-muted"></small>
</div>
<div class="form-group">
<label for="email">Email address</label>
<input type="email" class="form-control" name="email" mgModel aria-describedby="emailHelp"
placeholder="Enter email">
<small id="emailHelp" class="form-text text-muted"></small>
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" class="form-control" name="password" ngModel placeholder="Password">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
create-user.component.ts
import { Component, OnInit } from '@angular/core';
import { NgForm } from '@angular/forms';
import { UserService } from '../services/user.service';
@Component({
selector: 'app-create-user',
templateUrl: './create-user.component.html',
styleUrls: ['./create-user.component.css']
})
export class CreateUserComponent implements OnInit {
constructor(private service: UserService) { }
ngOnInit(): void {
}
onSubmit(form: NgForm) {
this.service.addUser(form.value).subscribe(
res => {
alert('data has been added');
}
)
console.log(form.value);
}
}
发布于 2020-04-26 06:56:04
如果响应是500内部服务器错误。问题出在你的Laravel后端。
我建议在您的Laravel设置中设置一些调试日志,看看那里发生了什么错误。同样100%确定,只需打开您的开发人员开发工具在谷歌浏览器(F12),并选择“网络”标签,以检查您正在提交给您的后端的请求。
验证POST正文是否正确,因为可能是因为您向后端发送了错误的数据或格式错误的数据而触发了500内部服务器错误。
https://stackoverflow.com/questions/61432705
复制相似问题