日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【spring boot】ajax post提交遇到403

發布時間:2024/9/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【spring boot】ajax post提交遇到403 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 前言
  • 處理思路
  • 禁用csrf
  • 配置中,加入排除csrf的地址
  • 補全csrf
    • form中補全csrf
    • ajax的url中補全csrf
    • AJAX請求發送前補全csrf:Ajax事件

前言

當滿足以下條件時,ajax post 提交遇到403錯誤應是缺少csrf。

  • spring boot中使用了spring security。
  • spring security對post請求會進行身份驗證。
  • spring security默認開啟了Cross Site Request Forgery (CSRF)。

處理思路

1,可以禁用csrf。
2,配置中,加入排除csrf的地址。
3,補全csrf。(本次僅對此加以說明)

禁用csrf

略。

配置中,加入排除csrf的地址

略。

補全csrf

form中補全csrf

<input type="hidden" name="${_csrf.parameterName}"value="${_csrf.token}"/>

ajax的url中補全csrf

themyleaf中寫法 ------------------------------- layedit.set({uploadImage: {url: '[(@{/cms/upload/photo})]?[(${_csrf.parameterName})]=[(${_csrf.token})]' //接口url,type: 'post' //默認post}});

AJAX請求發送前補全csrf:Ajax事件

XMLHttpRequest對象和設置作為參數傳遞給回調函數

$(document).ajaxSend(function(evt,request,settings){})是全局事件,也就是說,

只要該頁面定義了這個函數,那么,在每個ajax請求前都會執行該函數

head中添加

<meta name="_csrf" th:content="${_csrf.token}"/> <meta name="_csrf_header" th:content="${_csrf.headerName}"/>

js文件中添加

var token = $("meta[name='_csrf']").attr("content"); var header = $("meta[name='_csrf_header']").attr("content"); $(document).ajaxSend(function(e, xhr, options) {xhr.setRequestHeader(header, token); });

總結

以上是生活随笔為你收集整理的【spring boot】ajax post提交遇到403的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。