預檢請求!?
那是甚麼 可以吃嗎?
上一篇提到同事在嘗試打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塞值

總之感謝飛天小女警的努力  ....小鎮又度過了和平的一天. 

 

 

文章標籤
全站熱搜
創作者介紹
創作者 andrea77222 的頭像
andrea77222

Andrea's Hello world

andrea77222 發表在 痞客邦 留言(0) 人氣(15)