angular post 方法参数

angular post method parameters

我目前正在使用 angular 4 构建我的网站 application.In 我正在通过对网络服务的其余调用获取数据,当我 post 数据时我想知道我是否可以用 object 更改 body 表示(post 方法中的第二个参数),这样指令会更容易。

 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": "souad122@gmail.com",
                              "enabled": true,
                              "lastName": "waaaa",
                              "login": "souad122@gmail.com",
                              "name": "souad12219",
                              "phone": ""
                            }
                          }

) 。订阅( 资源 => { console.log(资源); }, 错误 => { console.log("Error occured"); } ); }

是的,您可以使用对象。不过,您需要先将其转换为 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": "souad122@gmail.com",
                              "enabled": true,
                              "lastName": "waaaa",
                              "login": "souad122@gmail.com",
                              "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"); } ); 
}

您可以 POST 格式为 Json 的数据,例如:

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.