2017-10-09 1 views
0

Je suis actuellement en utilisant angulaire 4 pour construire mon application web.Dans ce que je reçois les données via des appels de repos aux webservices, quand je poste des données je veux savoir si je peux changer la présentation du corps (deuxième param dans la méthode post) avec un objet donc l'instruction sera plus facile.paramètres post méthode angulaire

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 ( res => { console.log (res);} , err => { console.log ("Une erreur est survenue");} ); }

Répondre

0

Vous pouvez publier des données au format JSON comme comme:

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

Faites attention sur la const data. C'est l'objet JS le plus simple.

+0

j'ai oublié l'option d'en-tête – fbm

+0

Accepter ma réponse s'il vous plaît – OPV

+0

déjà accepté – fbm

1

Oui, vous pouvez utiliser un objet. Cependant, vous devrez d'abord le convertir en JSON. Vous pouvez utiliser JSON.stringify de le faire:

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

j'ai eu cette erreur type de contenu texte/plaine pas pris en charge:/ – fbm