jquery - 如何在 requestheader 中设置 CSRF token 以传入 $.post 方法调用

标签 jquery ajax spring-mvc csrf

我正在 Spring 3.x 中使用 CSRF。在 Jquery 调用时,需要在 requesetHeader 中设置 token ,否则会出现 CSRF“null”异常。因此,我尝试获取 javascript 函数中的值,并能够获取 javascipt 函数内的 token 值和 header 值,然后我尝试使用以下功能设置 token ,但没有一个起作用。

方法一:

var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");

$.post(
url,
beforeSend: function(xhr){
xhr.setRequestHeader("Content-Type","application/json");
xhr.setRequestHeader("Accept","application/json");
},
$(testform).serialize(),
function(data) {
async: false;
}).done(function(data){

});

方法2:

var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");

$.post(
url,
headers: {header,token},
$(testform).serialize(),
function(data) {
async: false;
}).done(function(data){

});

请提出建议或帮助我解决这个问题。

使用以下代码更新,

方法3:

从下面的代码中,我能够成功地访问 Controller ,但响应不会转发到另一个 jsp。我是否遗漏了以下代码中的任何内容,请建议我。

var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");

$.post(
url,
{_csrf_header : header, _csrf : token},
$(testform).serialize(),
function(data) {
async: false;
}).done(function(data){

});

最佳答案

        var csrf = $('input[name="_csrf"]').val();
        var contentResult=document.getElementById('divComboProductos');
        var comercio =$("#ddlComercio").val();
        $.ajax({
            url: [[@{'/comun/productos/obtener/'}]] + comercio,
            data:  { _csrf : csrf},
            dataType:'text',
            cache:false,
            type:'POST',
            success:function(response){
                contentResult.innerHTML=response;
            }                           
        });

关于jquery - 如何在 requestheader 中设置 CSRF token 以传入 $.post 方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22834428/

相关文章:

jquery - 如何使用 jQuery 存储和访问 iFrame 父级上的值?

JavaScript 验证复选框

用于桌面浏览器和 iOS & Android 的 JQuery 滚动条组件

jquery - Ajax 添加 HTML 不继承页面样式 - jQuery Mobile

java - Spring 安全 : Not able to configure method security with java config

java - WebSockets 请求中请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - 从 Jquery/Ajax MODx 调用代码片段

javascript - AJAX PHP - 响应是一个具有空值的对象

jquery ajax调用返回JSON解析错误

javascript - spring mvc hibernate Restful(并发)问题