Http put Ionic 3 不工作

Http put Ionic 3 Not working

基本上这个 http put 将像一个按钮一样打开系统。在邮递员上,我可以输入 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'));


      }

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

如果你想进行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'));

}

Suggestion Note :

Try to put this code in some service and not in any component

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'));