我是Angular 2的新手,我目前正致力于HTTP服务。
我有一个服务来创建表单和addFormation服务。 当我在表单中验证表单时,会添加两个表单(一个包含我的数据,另一个没有数据)。
下面是简化的代码段:
formation.html:
<form [formGroup]="formationForm" (ngSubmit)="saveFormation()" novalidate>
<input type="text" formControlName="formation">
<input type="submit" value="Save" [disabled]="formationForm.invalid"/>
</form>
formation.ts:
formationForm: FormGroup;
errorMessage: any;
constructor(
private _fb: FormBuilder,
private _formationService: FormationService,
private _avRoute: ActivatedRoute,
private _router: Router
) {
this.createForm();
}
createForm(){
this.formationForm = this._fb.group({
formation: ['', Validators.required],
});
}
ngOnInit() { }
saveFormation(){
this._formationService.saveFormation(this.formationForm.value)
.subscribe(formation =>
this._router.navigate(["formations"])
, error => this.errorMessage = error
);
}
formation.service.ts:
baseUrl: string = 'http://localhost:8080/studentApi/formation/'
constructor(private _http : Http) { }
saveFormation(formation: Formation): Observable<Formation>{
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this._http.post(
this.baseUrl + "createFormation.php",
formation,
options
).map(res => res.json());
}
我在网络控制台中看到过2次服务呼叫:请求方法:OPTIONS&amp;请求方法:POST)
我没有解释这个问题,我在服务代码中做错了什么?
你的建议!
答案 0 :(得分:0)
OPTIONS
个请求。 (跨域资源共享)。当请求OPTIONS
或GET
以外的任何内容时,浏览器有义务发送POST
请求。或者POST
请求包含某些mime-types
。这称为飞行前请求。
它还用于检查服务器端是否需要某些凭据凭证