1. 程式人生 > >關於jquery的put、delete ajax請求變成options的解決辦法

關於jquery的put、delete ajax請求變成options的解決辦法

情況介紹:node.js做後端伺服器,3000的埠。前端瀏覽器是webstorm自帶的63342埠。涉及到跨域訪問

程式碼如下。

jquery:
這裡寫圖片描述
此時使用執行put請求,呼叫上面的posthandler方法
這裡寫圖片描述
之前說過,如果是post和get方法,那麼都可以正常使用,如app.get和app.post這些都是可以的。但是如果採用app.put方法,則會提示options。表現為下面這種情況、
這裡寫圖片描述

剛開始我也很奇怪,明明請求是put,怎麼會變成options呢。後來通過查詢資料(真的應該去國外網站
看看,比國內好很多),發現:當執行put和delete等複雜請求的時候,瀏覽器會先發送一個options請求
給後端伺服器。伺服器如果同意,再發送put請求。
當在google瀏覽器重新執行put請求後,通過除錯工具我們也可以看到,瀏覽器確實先發送了一個options請求
這裡寫圖片描述


接著是put請求
這裡寫圖片描述
因此我們需要做的就是先對options請求進行處理,這樣
瀏覽器才會傳送put請求。所以應先判斷是否為options請求。若是option,則加上跨域的程式碼。option請求結束之後,才能響應put請求。
這裡寫圖片描述

知乎