2015-10-08 78 views
0

,響應請求的代碼如下:的Chrome/Safari瀏覽器/ E​​DGE /郵差HTTP頭很奇怪的行爲

return new HttpStatusCodeResult(ex.Detail.HttpStatusCode, ex.Detail.ReasonPhrase); 
Response.AddHeader("X-Status", ex.Detail.ReasonPhrase); 

這裏有趣的是,瀏覽器/客戶端,當有一個特殊的上涉及的字符(如çé)原因短語按預期呈現,但X狀態不會!

這裏的非信徒 enter image description here

我測試過的編碼組合的數量無數,但沒有工作......在X-狀態,只不過沒有截圖...

我要使用X-Status自定義標題,因爲Safari會覆蓋StatusText附帶的任何消息...

+1

當您看到原始響應時,您會看到什麼?屏幕顯示你看起來像解析的響應。此外,你可以使用類似於:HttpUtility.UrlEncode(ex.Detail.ReasonPhrase,Encoding.UTF8) – Hozikimaru

回答

1

HTTP規範沒有爲標題字段或狀態行定義字符編碼(以及不超過US-ASCII)。如果你需要非ASCII字符,你是自己的。比如,一種可靠的方法是百分比編碼。

另請注意,HTTP/2沒有狀態行,因此試圖使用它返回信息是非首選。

相關問題