【问题标题】:Event before sending Ajax Request (to add some data to the request)发送 Ajax 请求之前的事件(向请求中添加一些数据)
【发布时间】:2023-04-01 15:33:01
【问题描述】:

我在我的应用程序中添加了一个 CSRF 令牌。普通表单工作正常,但现在我也必须调整所有 ajax 请求。

在不同的地方有很多 ajax 请求,这就是为什么我正在寻找一种简单的方法来解决这个问题。

是否有某种事件在发送 ajax 请求之前触发,所以我可以将我的 CSRF 令牌添加到请求中?

【问题讨论】:

标签: javascript jquery ajax post


【解决方案1】:

.ajaxSend()

您可以为此使用 ajaxSend,它允许您在执行 ajax 请求之前更改 url。

$( document ).ajaxSend(function( event, jqxhr, settings ) {
  if ( settings.url == "ajax/test.html" ) {
    $( ".log" ).text( "Triggered ajaxSend handler." );
  }
});

【讨论】:

    【解决方案2】:

    除了cmets中列出的文章中提到的方法外,还有 beforeSend(..) 在发送 AJAX 请求之前调用的函数。
    详情请见documentation

    【讨论】:

      【解决方案3】:

      可以为不同的AJAX事件绑定事件监听see here

       $(document).bind("ajaxSend", function(){
         $("#loading").show();
       }).bind("ajaxComplete", function(){
         $("#loading").hide();
       });
      

      同样你可以将你的方法绑定为

      $(document).bind("ajaxSend", function(){
        // code to add CSRF token
       })
      

      这些事件在文档上触发并且是GLOBAL EVENT

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-04
        • 1970-01-01
        • 1970-01-01
        • 2013-12-13
        • 1970-01-01
        • 2018-06-04
        • 2020-04-05
        相关资源
        最近更新 更多