預檢請求!?
那是甚麼 可以吃嗎?
上一篇提到同事在嘗試打API時發現問題
看到這段訊息時知道因為違反跨域規則,雖然Request 已經正常送出,但瀏覽器不給存取內容。
第一時間已經先處理Request Header問題
但就在處理後發現居然一點屁用都沒有
懷疑人生了好久....
最後根據錯誤訊息看到關鍵字preflight→ 預檢請求
原來 Request 可以允許 Access-Control-Allow-Origin 的 header 跨域 AJAX
但對於非簡單請求,CORS機制跨域會首先進行 preflight(使用HTTP OPTIONS Method 進行請求)
確認這個訪問沒問題後才會發送真正的請求
But....就是這個But!!!!
公司的IIS因為某些原因居然未開放HTTP OPTIONS Method
預檢請求不通過
自然就沒辦法取得API的東西
既然非簡單請求不行
那就只好變更請求方式 → 簡單請求(Simple Request) 選我正解!
關於簡單請求的規則如下 ()
僅允許下列 HTTP 方法:GET | HEAD | Post
僅允許以下 Content-Type 標頭值:application/x-www-form-urlencoded | multipart/form-data | text/plain
最後的解決方式就是改用簡單請求把資料在前端改用formdata塞值
總之感謝飛天小女警的努力 ....小鎮又度過了和平的一天.
文章標籤
全站熱搜