在開發項目過程當中,發如今使用axios調用接口都會有兩個請求,第一個請求時,看不到請求參數,也看不到請求的結果;只有第二次請求時纔會有相應的請求參數以及請求結果;前端
那爲甚麼會有這麼一次額外的請求呢,後面通過查證資料發現:ios
若是隻是普通的 ajax 請求,也不會發起這個請求,只有當 ajax 請求綁定了 upload 的事件而且跨域的時候,就會自動發起這個請求了。這樣就很顯然了,咱們有 upload 事件綁定(通常都是本地調試,因此會有跨域),看了下 axios 文檔,發現config配置文件中有兩個參數:分別用於處理上傳和下載事件,也就是這裏綁定了 upload 事件,因此每次請求都會有個 option 請求。ajax
// onUploadProgress: function(progressEvent) { // // Do whatever you want with the native progress event // }, // onDownloadProgress: function(progressEvent) { // // Do whatever you want with the native progress event // },
解決方案以下:axios
①.直接註釋掉配置文檔中這兩個事件的請求就行了;後端
②.跨域請求須要先發一次 option 預請求,options是檢驗是否容許跨域的,若是不但願options 請求,直接讓後端遇到option 直接返回就能夠了,前端可不作處理;跨域