【问题标题】:Angular 2 http POSTAngular 2 http POST
【发布时间】:2016-02-07 14:17:21
【问题描述】:

我开始使用 angular 2 和 typeScript,一切都很好,但是当我在控制台日志中使用 rest api (POST) 时,我得到 Response {_body: "", status: 204, statusText: "Ok", headers: Headers, type: 2… },尽管我通过了登录的真正参数,这是我的代码

 authentification(){
        var headers = new Headers();
          headers.append('Content-Type', 'application/x-www-form-urlencoded');
        // headers.append('Content-Type', 'application/json');
       return this.http.post(this._postUrl,JSON.stringify({username:"abc",password:"abc"}),{headers:headers});
    }

这是我的网络服务

 @POST
    @Path("/admin")
    @Consumes("application/x-www-form-urlencoded")
    public User getDate(@HeaderParam("username")String username,@HeaderParam("password")String password) throws Exception{
        try {
            String passwordC =  AESCrypt.encrypt(password);
            User u = userService.login(username, passwordC);
            return u;
            
        } catch (Exception e) {
            return null;
        }
    }

我认为我的 web 服务参数在字符串和角度参数中的问题是 json
任何人都可以帮助我,谢谢。

【问题讨论】:

标签: javascript angular rest typescript


【解决方案1】:

对于 form-urlencoded 内容类型,您需要使用 key=value 对以查询字符串格式发送数据。您可以在 http 模块中的 URLSearchParams 类的帮助下构建此字符串。在您的情况下,它可能看起来像这样:

authentification() {

    var headers = new Headers();
    headers.append('Content-Type', 'application/x-www-form-urlencoded');

    var params = new URLSearchParams();
    params.append('username', 'abc');
    params.append('password', 'abc'); // .toString() => username=abc&password=abc

    return this.http.post(this._postUrl, params.toString(), {headers});
}

【讨论】:

  • 男人爱你。刚刚救了我的一个**免于被踢:) GBY
猜你喜欢
  • 2016-07-09
  • 2017-12-07
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 2017-12-19
  • 2017-05-16
  • 2017-03-29
相关资源
最近更新 更多