2016-06-21 52 views
0

我不確定這是一個錯誤還是我在做錯誤的rc2,但事情是,它不是在舊的發生版本。無法覆蓋在角度rc2 HTTP.put內容類型

我有一個http.put請求,我需要設置Content-type ='application/json'。正如我所說,在舊版本中它工作正常。但是當我將角度升級到最新的rc2時,我開始得到不支持的介質類型錯誤。

我考察了開發工具的HTTP調用來檢查什麼是派:

Content-Type:text/plain, application/json 

在舊版本中,我只有「應用/ 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)) 

事情我已經做了仔細檢查了我的懷疑:

  • 我手動添加「text/plain的」使用RC1版,以檢查它是否是 要扔一個錯誤,回答是:是的,它拋出了相同的 錯誤。
  • 我創建了一個使用https://plnkr.co/edit/Qxw4pd2VnkkWg4iCXwUD?p=preview來模擬我的 方案的重新啓動程序。它不會拋出一個錯誤,但它會創建相同的標題 我在這裏。

這是一個錯誤?

編輯

我對角的回購開設了一個問題,顯然這似乎是一個小錯誤,雖然是什麼原因導致我的情況下,錯誤是在「內容類型」小寫字母T,即應是「Content-T ype」。

它應該固定在以後的版本上。 問題:https://github.com/angular/angular/issues/9452

回答

1

我遇到了同樣的問題。我預計這是RC2中的一個錯誤。

但是,你可以得到你例如通過作出一些改變

  1. 定身到一個空的JSON對象,而不是任何空字符串
  2. 不要覆蓋內容類型的工作。

示例:

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)) 
+0

我已經編輯博文,包括問題的具有角的隊打開了細節。 –