Angular 4 - Django:“请求中不支持的媒体类型\”text / plain \“。

时间:2018-02-01 23:57:31

标签: json angular typescript django-rest-framework

我正在使用网络应用。我在Django Rest的Angular 4和后端前端。

当我想从API接收信息时它工作得很好,但是当我尝试使用API​​发送数据保存在数据库中时,我有这个错误:"Unsupported media type \"text/plain\" in request."

我认为我的API配置很严格,因为我正在研究,我发现同样的错误,麻烦就在Angular中。我已经尝试了所有我找到的东西,但对我来说没什么用。

这是我的角色代码:

enviar() {
    var body = '"schema_name":"pruebanm","fecha_alta":"2018-02-01","nombre":"cliente","ubicacion":"prueba","telefono":"1234567","correo":"cliente@prueba.com","activo":true';
    this.http.post("http://tenant1.intrainingls.com:8000/viewSets/cliente/", JSON.stringify(body)).subscribe((data) => {});
}

我希望有人可以帮我找到解决方案。 (正文中的数据是尝试)

PD。如果您需要更多信息,请告诉我。

2 个答案:

答案 0 :(得分:1)

您的HTTP请求正文必须是对象:

var body = { "schema_name":"pruebanm","fecha_alta":"2018-02-01","nombre":"cliente","ubicacion":"prueba","telefono":"1234567","correo":"cliente@prueba.com","activo":true };

并且不需要对其进行字符串化:

enviar() {
    var body = '"schema_name":"pruebanm","fecha_alta":"2018-02-01","nombre":"cliente","ubicacion":"prueba","telefono":"1234567","correo":"cliente@prueba.com","activo":true';
    this.http.post("http://tenant1.intrainingls.com:8000/viewSets/cliente/", body).subscribe((data) => {});
}

https://angular.io/guide/http#making-a-post-request

答案 1 :(得分:0)

如错误“您正在使用错误的媒体类型”中所述。

将其更改为application/json

enter image description here