我开始使用 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 服务参数字符串和 Angular 参数中的问题是 json
任何人都可以帮助我,谢谢。
最佳答案
对于表单 urlencoded 内容类型,您需要以带有键=值对的查询字符串格式发送数据。您可以借助 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});
}
关于javascript - Angular 2 HTTP POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35254579/