經過上篇博文的方法處理後,進入代碼調試後發現ajax獲取不了服務器端返回的數據,度娘後發現原來AJAX的OPTIONS請求方式是狀態類型查詢,即向服務器提交信息後不返回任何信息,只將執行狀態(200狀態)通知客戶端,也就是說上文的方法沒有用。javascript
而後使用IE/火狐/谷歌三種瀏覽器進行測試,發現IE上使用jquery ajax能支持delete與put正常提交,而其他兩種都不行,查找了jquery源碼也沒有找到修改位置,因此想來想去只好換一種折中的方式提交。java
上AJAX代碼python
$.ajax({ type: 'POST', url: 'http://127.0.0.1/system/menu_info/1/', data: {'_method': 'delete' }, dataType: 'json', success: function (data) { //return } });
使用DELETE與PUT提交時,javascript ajax中繼續使用POST請求,而後請求參數中增長_method參數,值爲對應的請求方式值jquery
服務器端直接在勾子裏添加下面代碼,改變REQUEST_METHOD的值ajax
@hook('before_request') def validate(): """使用勾子處理頁面或接口訪問事件""" if request.method == 'POST' and request.POST.get('_method'): request.environ['REQUEST_METHOD'] = request.POST.get('_method', '').upper()
從新提交,python服務器端路由就能夠正常接收並返回數據給客戶端了json
@delete('/system/menu_info/<id:int>/') def callback(id): """ 刪除指定記錄 """ # 業務代碼 return {'state':1, 'msg': 'ok'}
版權聲明:瀏覽器
本文由AllEmpty原創併發佈於博客園,版權與博客園共同全部,歡迎轉載,未經本人贊成必須保留此段聲明,且在文章頁面明顯位置給出原文連接,不然保留追究法律責任的權利。若有問題,能夠經過1654937@qq.com 聯繫我,很是感謝。服務器
發表本編內容,主要是爲了和你們共同窗習共同進步,有興趣的朋友能夠加加Q羣:669058475,你們一塊兒探討。併發
更多內容,敬請觀注博客:http://www.cnblogs.com/EmptyFS/學習