415离子2中不支持的介质类型 - Web服务POST?

时间:2016-02-18 09:42:02

标签: web-services http post angular ionic2

我正在尝试在Ionic 2中登录我的应用程序时发出POST请求。

var link = 'https://domain.name/login' + '?appname=' + "name";
var data = JSON.stringify({username: "0000000", password: "12345678"});
var headers = new Headers();
    headers.append('Content-Type', 'application/json');

this.http.post(link, data, {headers: headers})
    .subscribe(data => {
        var alert = Alert.create({
            title: "Data String",
            subTitle: data.json().data,
            buttons: ["close"]
        });
        this.nav.present(alert);
    }, error => {
        console.log(JSON.stringify(error.json()));
});

但它给出了以下错误。虽然我已将内容类型设置为低于错误。

415 Unsupported Media Type 
{"Message":"The request entity's media type 'text/plain' is not supported for this resource."}

3 个答案:

答案 0 :(得分:1)

也许您忘记导入Headers类。在这种情况下,您自己定义的标题不会在请求中发送...

import { Http, Headers } from 'angular2/http';

您可以在开发人员工具的“网络”标签中查看此请求的内容吗?你有Content-Type标题吗?

答案 1 :(得分:0)

使用this.http.setDataSerializer('json');发布之前

答案 2 :(得分:0)

使用 set 代替 append ,因为它是不可变的。像这样的东西-

var headers = new HttpHeaders();
headers = headers.set('Content-Type', 'application/json');