角度发布方法参数

角度发布方法参数

问题描述:

我目前正在使用角度4来构建我的web应用程序。在那里,我通过对web服务的其余调用来获取数据,当我发布数据时我想知道是否可以更改主体表示(第二个参数在后期的方法)与对象,所以说明会更容易。角度发布方法参数

updatePasswordWithObservable(userToAdd:User) { 
     let headers = new Headers({ 'Content-Type': 'application/json' }); 
      let options = new RequestOptions({ headers: headers }); 


         this.http.post(this.updatePwdUrl, 

{ 
          "internalId": 0, 
          "oldPwd": "", 
          "pwd": "123", 
          "reset": true, 
          "userEntry": { 
           "activeNotifications": true, 
           "aspects": [ 
           { 
            "aspectName": "string", 
            "internalId": 0 
           } 
           ], 
           "email": "[email protected]", 
           "enabled": true, 
           "lastName": "waaaa", 
           "login": "[email protected]", 
           "name": "souad12219", 
           "phone": "" 
          } 
          } 

) .subscribe( 解析度=> { 的console.log(RES); }, ERR => { 的console.log( “发生错误”);} ); }

可以JSON格式的POST数据,如为:

public loadApp(): Observable<any> { 

    const data = { 
     'type' : 'ReadRequest', 
     'query' : 'get', 
     'parameters' : { 'app' : 'new' } 
    }; 

    return this.http.post(null, data) 
     .map(res => (<any>res)._body === '' ? {} : res.json()) 
     .catch(this.handleError); 
    } 

    private handleErrorObservable(error: Response | any) { 
    return Observable.throw(error.message || error); 
    } 

    private handleError(error: any): Promise<any> { 
    console.error('loadAuditories: ', error); 
    return Promise.reject(error.message || 'Server error: ' + error); 
    } 

注重对const data。这是最简单的对象JS。

+0

我忘了标题选项 – fbm

+0

请接受我的回答 – OPV

+0

已接受 – fbm

是的,你可以使用一个对象。不过,您需要先将其转换为JSON。您可以使用JSON.stringify这样做:

updatePasswordWithObservable(userToAdd:User) { 
    let data = JSON.stringify({ 
          "internalId": 0, 
          "oldPwd": "", 
          "pwd": "123", 
          "reset": true, 
          "userEntry": { 
           "activeNotifications": true, 
           "aspects": [ 
           { 
            "aspectName": "string", 
            "internalId": 0 
           } 
           ], 
           "email": "[email protected]", 
           "enabled": true, 
           "lastName": "waaaa", 
           "login": "[email protected]", 
           "name": "souad12219", 
           "phone": "" 
          } 
          }); 

    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 

    this.http.post(this.updatePwdUrl, data) 
     .subscribe(res => { console.log(res); }, err => { console.log("Error occured"); }); 
} 
+0

我收到此错误内容类型text/plain不支持:/ – fbm