当我从Angular向Django执行PUT或PATCH请求时,我收到200代码响应。但实际上数据库中没有任何变化。
API是使用DRF的Django REST API。 当我向邮递员提出任何要求时,一切正常。
但是当我尝试在Angular中执行请求时,API响应包含200个代码,但是数据库中没有任何变化。 在Angular上具有相同参数的相同请求
let headers = new HttpHeaders(
{
'Authorization': 'Token ' + this._userService.getToken(),
'Content-Type': 'application/x-www-form-urlencoded'
}
);
return this._http.patch( this.urlAPI, json , {headers: headers} );
//json is the object that I would to modify
然后我尝试调试当我在Angular和Postman中发送数据时Django接收的对象如何,这是区别。 可能是主要错误,但我不知道如何发送数据。如果我尝试将Content-Type更改为JSON,则会收到“ 400错误请求”响应。
邮递员输出:
<QueryDict: {'address': ['Some Address']} >
和Angular输出:
<QueryDict: {'{"address":"Some Address"}': ['']} >
所以我真的迷路了。
更新 为此,我做了一个不好的解决方案:
let body = new HttpParams()
.set('name', client.name)
//.set(... whatever);
return this._http.patch( this.urlAPI, body , {headers: headers} );
,效果很好。 但是我需要使演员表自动化