2016-10-21 35 views
-1

我已經在角2應用以下文件:Angular2 HTTP POST拋出訂戶異常

注射服務

@Injectable() 
export class CompanyService{ 
    constructor(private http:Http){} 

    public test():any{ 
     return this.http.get('http://echo.jsontest.com/title/ipsum/content/blah') 
     .map(res => res.json()) 
     .catch((error:any) => Observable.throw(error.json().error || 'Server error')); 
    } 
} 

元器件

@Component({ 
    templateUrl: 'company.html', 
    providers: [CompanyService] 
}) 
export class CompanyPage{ 
    constructor(private companyServ:CompanyService){} 

    //This method is used from a submit for using ngSubmit 
    public onSubmit():void{ 
     this.companyServ.test().subscribe(data => { 
      console.log('Data', data); 
     }, err => { 
      console.error('Error', err); 
     }, console.log('End')); 
    } 
} 

當視圖被呈現和方法onSubmit被調用,我得到以下錯誤:

Error when "onSubmit" method is called

有關錯誤的任何信息,將不勝感激。

回答

0

的解決方案是改變返回CompanyService類的test()方法的數據類型:

注射服務

public test():Observable<any>{ 
    return this.http.get('http://echo.jsontest.com/title/ipsum/content/blah') 
      .map(res => res.json()) 
      .catch((error:any) => Observable.throw(error.json().error || 'Server error')); 
} 

元器件

我刪除3參數,因爲Observable<any>只允許2個參數:成功功能和錯誤功能

public onSubmit():void{ 
    this.companyServ.test().subscribe(data => { 
     console.log('Data', data); 
    }, err => { 
     console.error('Error', err); 
    }); 
}