Restful 常常會遇到的HTTP狀態碼


一、405 Method Not Allowed

請求方式錯誤,好比服務端約定PUT請求,結果客戶端採用了GET;jquery

個人項目中是這樣的,訪問的服務真實存在,可是用PUT,POST訪問的url是不存在的,因此出現這樣的問題,就是訪問的IP寫成了別人的了。web


二、415 Unsupported Media Type

請求的Content-Type 錯誤,對於GET請求沒有限制,可是對於其餘請求方式,尤爲是POST,則必須使用 ContentType:"application/json" ; 另外 dataType 是服務端返回類型,最好不要指定。ajax

這裏還有一點須要注意,那就是服務端會採用 @RequestBody來獲取參數,由於 RestController默認把 @RequestBody和@ResponseBody做爲JSON處理,因此須要採用JSON格式接收json

contentType:"application/json"瀏覽器

三、400 Bad Request

表示請求報文中存在語法錯誤服務器

這個是和415有關聯的,由於415必須指定請求給服務端的數據類型,若是指定了爲"application/json" , 那麼使用ajax發送數據是即data參數必須爲json格式的字符串app

JSON.stringify(obj) ; 不能使用$('form').serialize();緣由就是這個方法內部使用了 $.param(obj)把參數轉爲 url的參數了,並且還進行了特殊字符轉碼,須要使用decodeURIComponent解碼,jquery還把空格轉爲了+號url

data:JSON.stringify(obj)spa


四、403 Forbidden

就個人工程中是由於,Controller裏面新增了delete方法,可是沒有重啓就直接前臺ajax 調用 delete,換句話說若是沒有對應的方法就直接訪問,就會出現這個 403,其實 404 與之不一樣的是估計就是請求方式的不一樣致使的,因此,只要重啓項目就OK了。code


五、413 Request Entity Too Large

Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)

發送POST請求數據時,因爲表單數據太大,致使發生了一個客戶端錯誤,若是有web服務器,好比Nginx那麼是能夠調節上傳的數據的大小來解決這個問題,或者是能夠把請求的參數變小。


六、302 Found 

應該是訪問的URL地址和靜態資源的文件夾路徑衝突了,靜態資源地址的文件夾也是。

臨時性重定向,該狀態碼錶示請求的資源已經被分配了新的URI,但願用戶本次能使用新的URI訪問。


七、401 Authentication is possible but has failed

表示發送的請求須要有經過HTTP驗證的認證信息,這個就是在使用SVN時,在瀏覽器打開須要用戶輸入用戶名和密碼。


八、404 Not Found

表示資源不存在,極可能是客戶端URL地址寫錯了


圖例:

相關文章
相關標籤/搜索