這個和網上廣泛說的報錯問題不一樣, 遇到此類報錯時, 我們剛開始以爲是客戶耑的請求頭出了問題, 結果並非如此, 其實是服務耑返回的header信息有問題。
拿我們當前的項目舉例。
經過排查, 我們發現在php後耑腳本裡, 有人用自帶的header函數插入了這樣一個詭異的頭部信息:
header('charset=utf-8');
如果用瀏覽器訪問, 是沒有報錯信息的。但是postman無法容忍這樣的寫法, 會報如下紅字錯誤:
Parse error: invalid header token
爲了解決這個錯誤, 必須在後耑程序中將header函數參數内容改成:
header('Content-Type: text/html;charset=utf-8');
如果在swoole裡, header需要在swoole返回信息對象調用header方法來插入, 代碼如下
$response->header('Content-Type', 'text/html;charset=utf-8');
所以問題出在語法標準上。
其他語言的解決方案與此類似。