当前位置: 首页 > 面试题库 >

将CSRFToken添加到Ajax请求

宋华美
2023-03-14
问题内容

我需要传递CSRFToken基于Ajax的帖子请求,但不确定如何才能以最佳方式完成。使用内部签CSRFToken入请求的平台(仅POST请求)

最初我想将其添加到标题中

$(function() {
    $.ajaxSetup({
        headers : {
            'CSRFToken' : getCSRFTokenValue()
        }
    });
});

这将使其可用于每个Ajax请求,但不适用于我的情况,因为in请求CSRFToken仍然以null形式出现。

我可以CSRFToken为所有处理POST类型的Ajax调用设置任何方法吗

编辑 如果我在Ajax调用中执行了类似的操作

data: {"newsletter-subscription-email" : "XXX" , 'CSRFToken': getCSRFTokenValue()},

一切正常。

我的问题是,我想将CSRFToken值作为请求参数而不是请求标头传递


问题答案:

这个怎么样,

$("body").bind("ajaxSend", function(elm, xhr, s){
   if (s.type == "POST") {
      xhr.setRequestHeader('X-CSRF-Token', getCSRFTokenValue());
   }
});

参考:http :
//erlend.oftedal.no/blog/?
blogid= 118

CSRF作为参数传递,

        $.ajax({
            type: "POST",
            url: "file",
            data: { CSRF: getCSRFTokenValue()}
        })
        .done(function( msg ) {
            alert( "Data: " + msg );
        });


 类似资料:
  • 问题内容: 我已经开发了一个Restfull应用程序,我想添加另一个Web应用程序来使用其服务,因此我进行了以下Ajax调用: 我得到这个例外: 对象{readyState:0,状态:0,statusText:“ SyntaxError:无法执行’setRequestHeader’…-Origin: ‘不是有效的HTTP标头字段名称。”}错误DOMException:无法在’XMLHttpRequ

  • 问题内容: 假设我有一些要将JavaScript操作添加到的链接: 当页面加载时,我给他们所有的click事件: 但让我们说之后,我添加了另一个元素,但我想给它相同的事件。我不能这样做: 因为前三个事件将包含两个事件。处理此问题的最佳方法是什么? 问题答案: 您可以将$ .on绑定到这样的dom中始终存在的父元素。 请注意: 您可以用dom中将始终存在的元素的任何父级替换,并且父级越近越好。 具有

  • 问题内容: 我目前有此代码,非常简单 但是它仅在完全加载后显示内容,并且在此期间#windows元素保持为空。我想显示一个加载图像,直到页面加载为止。我该怎么办?jQuery网站对此没有任何解释。(据我所知) 问题答案: 首先创建一个div。 最初隐藏此DIV,并附加代码以在ajaxCall启动时显示此div,并在ajax调用完成时隐藏此div。 编辑 一段时间以前,SO格式化标签中存在一些问题。

  • 问题内容: 澄清点:将自定义标头添加到我的jQuery ajax调用中没有任何问题,我想将我的自定义标头自动添加到所有ajax调用中。 如果您看看jquery $.ajax自定义http标头问题(不是我的问题),您将看到一个很好的示例,说明如何为每个ajax调用手动实现代码。 我想为所有jQuery ajax调用覆盖beforeSend。根据jQuery文档,我可以使用jQuery.ajaxSet

  • 问题内容: 之前我使用模块在请求中添加标头。现在,我正在对该模块尝试相同的操作。 这是我正在使用的python请求模块:http : //pypi.python.org/pypi/requests 如何向和添加标头。说我必须在标题的每个请求中添加密钥。 问题答案: 从http://docs.python- requests.org/en/latest/user/quickstart/ 您只需要用标

  • 问题内容: 我想将自定义标头添加到jQuery的AJAX POST请求中。 我已经试过了: 当我发送此请求并观看FireBug时,看到以下标头: 选项xxxx / yyyy HTTP / 1.1 主机:127.0.0.1:6666 用户代理:Mozilla / 5.0(Windows NT 6.1; WOW64; rv:11.0)Gecko / 20100101 Firefox / 11.0 接受