Http把Ionic 3不起作用

时间:2018-02-07 12:15:57

标签: angular http ionic3 http-put

基本上这个http put就像一个按钮并在系统上切换。在postman上,我可以输入URL并且它工作正常,但是当我尝试在Ionic App上实现它时,它什么都不做。 (如果代码不清楚,我们很抱歉)

以下是POSTMAN生成的HTTP代码

    PUT (......) HTTP/1.1
    Host: ip
    Cache-Control: no-cache
    Postman-Token: 0bad8e4d-e717-015a-e321-d2ee05acc563
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

任何想法我如何在Ionic Angular 4应用程序中实现?

 data: any;

    toggle(): Observable<Response> {
        let headers = new Headers({ 'Content-Type': 'multipart/form-data' });  
        let options = new RequestOptions({headers: headers});

          return this.http.put('http:/ip/......', JSON.stringify(this.data), options).
map((res:Response) => res.json()).catch((error:any) => Observable.throw(error.json().error || 'Server error'));


      }

实际上没有任何错误,只是没有任何反应。

1 个答案:

答案 0 :(得分:0)

如果您想进行http通话,则应订阅 Observable,否则将不会调用

这是主要的差异b {w PromiseObservable

之一
toggle(): Observable<Response> {
        let headers = new Headers({ 'Content-Type': 'multipart/form-data' });  
        let options = new RequestOptions({headers: headers});

        return this.http.put('http:/ip/......', JSON.stringify(this.data), options).
                map((res:Response) => res.json())
                .subscribe(data => { console.log(data); }) // you are missing this line over here
                .catch((error:any) => Observable.throw(error.json().error || 'Server error'));

}
  

建议注意事项:

     

尝试将此代码放在某些服务中,而不是放在任何组件中

return this.http.put('http:/ip/......', JSON.stringify(this.data), options).
map((res:Response) => res.json()).catch((error:any) => Observable.throw(error.json().error || 'Server error'));