试图重写标题的内容类型,但它仍然在文本/纯文本中。有一种方法可以使用Ben的GateWayAPI,但希望有一个不涉及自定义包装的解决方案。
    var url = this.url;
    var body = JSON.stringify({email_login: "login", password_login: "password"});
    var headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
    return this.http.post(url, body, {headers:headers})
        .map(function (response) {
            return response.json();
        })
        .catch(this.handleError);发布于 2016-09-28 17:18:40
Request post of Http具有以下签名:
post(url: string, body: any, options?: RequestOptionsArgs)第三个参数是带有RequestOptionsArgs类型的参数,这意味着必须将RequestOptions传递给它,而不是Headers。您还应该使用箭头运算符(=>)而不是function。你要找的是这样的东西:
result: any;
httpPostTest() {
var url = this.url;
var body = JSON.stringify({email_login: "login", password_login: "password"});
let headers: Headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded' });
let options: RequestOptions = new RequestOptions({ headers: headers });
this.http.post(url, body, options)
    .map(response => {
        response = response.json();
    })
    .catch(this.handleError);
}在此之后,您需要使用订阅来获取response,因此假设这个函数名为httpPostTest (我将在上面添加它),我们希望将响应存储在名为result的变量中
this.httpPostTest().subscribe(
            response => { this.result = response; },
            error => { console.log('ERROR'); },
            () => { console.log('FINISHED')}
);https://stackoverflow.com/questions/39749667
复制相似问题