最近系統運作不是很正常,經過排查,發現某個AJAX請求被返回了499 error code.
但是實際上,http status code中,是沒有499.
499 是nginx自定義的一個code,搜索可以得知,這個是客戶端自己close了請求所以纔會這樣。
一般客戶端自己close ajax的請求,是很少的,無外乎兩個原因
也就是網上大部分人所說的,服務器處理請求的時候超時。所以客戶端瀏覽器強制關閉了這個連接。這種情況我沒見過。
就我遇到的這個情況,是客戶端異步請求ajax的時候,js出錯拋出例外,使得瀏覽器強制關閉所有連接。這時,nginx也會返回499.
於是,找到js出錯的地方,把例外接住,問題迎刃而解。