element-ui上傳組件el-upload文件上傳阿里雲oss出現405 Method not allowed錯誤問題

今天在vue項目中出現了這個問題。在本地調試時文件上傳正常但是打包到線上後出現了405 Method not allowed的錯誤。其實這個錯誤挺明確的,只是在分析的時候我們很難理性的去仔細查找。現將405錯誤分析,以及我的錯誤和解決辦法分享如下。

405 Method not allowed錯誤

405碼出現的原因有很多種的,一般我們使用post時出現405 錯誤最大的可能是 Web 服務器沒有被設置爲從客戶端接受輸入數據而出現。通俗的將就是沒有相關的處理方法。

vue開發中出現的原因

在我的項目中因爲前後端分離,而且前後端是不同域名的。這就出現了跨域的問題,在vue本地開發中我們大家都可以使用vue.config.js的proxy項來設置代理從而解決跨域問題。但是打包發佈後就不行了,vue.config.js中的proxy配置僅僅是用於開發調試用的。我們一般會在自己封裝的request中來根據開發環境和生產環境的不同而設置不同的api地址。在我的vue項目中也是這樣處理的。但是爲什麼405會出現在element-ui的el-upload中呢?因爲使用el-upload一般使用action設置地址來上傳文件到action的地址中。如果我們設置的只是路徑,那麼本地開發時是可以代理的,但是打包發佈後是沒有代理的。所以會請求我們的前端url加action中的path地址上傳。所以會找不到相應的處理方法會報405

在阿里雲oss中的405 Method not allowed錯誤

阿里雲oss的405錯誤是和http status的405對應的那麼就是你調用了不存在的處理方法。如果你本地調用沒問題而且調用的方法都是阿里雲sdk或者api調用的那麼你就要按照我上邊出現的問題來解決了。

解決辦法

我們咋element-ui的el-upload設置action屬性時可以判斷當前的環境來設置請求url。這個問題雖然是由於疏忽造成的,但是一般遇到http status code的錯誤大家都會失去理性的沒法安靜分析。所以,如果出現405錯誤後按F12打開開發者工具後查看network中請求的地址,來排查錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章