Angular 2:服务电话

时间:2017-12-11 09:14:31

标签: angular

我是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)

我没有解释这个问题,我在服务代码中做错了什么?

你的建议!

1 个答案:

答案 0 :(得分:0)

检查CORS问题需要

OPTIONS个请求。 (跨域资源共享)。当请求OPTIONSGET以外的任何内容时,浏览器有义务发送POST请求。或者POST请求包含某些mime-types。这称为飞行前请求。

它还用于检查服务器端是否需要某些凭据凭证