我不确定这是一个bug还是我在rc2中做错了什么,但问题是它在旧版本中没有发生。
我有一个http.put请求,我需要设置Content-type ='application / json'。正如我所说,在旧版本中,它工作正常。但是当我将角度升级到最新的rc2时,我开始得到Unsupported Media Type错误。
我在dev工具中检查了http调用以检查发送的内容:
Content-Type:text/plain, application/json
在旧版本中,我只有'application / json'而不是'text / plain'。因此,我认为这是造成错误的原因。
我不明白为什么我的标题定义被追加而不是被覆盖。
以下是我创建http.put调用的方法。
let opt: RequestOptions
let headers: Headers = new Headers
let searchParams: URLSearchParams = new URLSearchParams()
headers.set ('Content-type', 'application/json')
opt = new RequestOptions({
search: searchParams,
headers: headers
})
this._http.put('<any put url>', '',opt)
.subscribe(data => console.log(data))
我已经做过的事情来仔细检查我的怀疑:
这是一个错误吗?
修改
我已经在angular的repo上打开了一个问题,显然它似乎是一个小bug,虽然导致我的情况错误的是“Content-type”中的小写t,它应该是“Content- Ť YPE”。
应该在以后的版本中固定。 问题:https://github.com/angular/angular/issues/9452
答案 0 :(得分:1)
我遇到了同样的问题。我希望这是RC2中的一个错误。
但是,您可以通过进行一些更改来使您的示例正常工作
示例:
this._http.put('https://httpbin.org/put', {})
.subscribe(data => console.log(data))
而不是
this._http.put('https://httpbin.org/put', '', headers)
.subscribe(data => console.log(data))