使用abp框架,使用了Zero模塊。再使用Element ui進行上傳圖片。出現400 bad request錯誤請求。
用postman傳數據到接口時正常工作的。
經過幾經波折,終於找到問題是nati token的問題。 https://forum.aspnetboilerplate.com/viewtopic.php?f=5&t=10025&sid=5b3ace20a25195168c29846975df630d
因為element ui 不是abp的部分。他使用的ajax請求沒有包含antiForgery token。所以被abp框架視為是跨站攻擊的請求,所以返回了400錯誤。同理,用jquery的ajax方法去請求數據也是會出現這錯誤的。
用postman能夠正確請求,因為postman沒有使用apb view頁面,沒有設置antiForgery token。所以可以上傳文件。
解決辦法是在請求頭加X-XSRF-TOKEN。
那么問題變成了,如何獲取antiForgery token。
答案是,使用abp封裝的方法: abp.security.antiForgery.getToken()。 https://aspnetboilerplate.com/Pages/Documents/XSRF-CSRF-Protection