【问题标题】:How to send a token in all ajax requests如何在所有 ajax 请求中发送令牌
【发布时间】:2012-11-16 03:24:05
【问题描述】:

有没有一种方法可以在页面的所有 ajax 请求中发送令牌,而无需在每个 $.ajax({}) 调用中写入?

【问题讨论】:

    标签: ajax jquery post token


    【解决方案1】:

    使用全局 beforeSend AJAX 事件修改任何 AJAX 请求:http://docs.jquery.com/Ajax_Events

    更新:我刚刚检查过,似乎此事件将被弃用,因此请改用此事件:http://api.jquery.com/jQuery.ajaxPrefilter/

    【讨论】:

      【解决方案2】:

      您可以全局设置此
      var token = "某个值";

           $.ajaxSetup
              (
                 {
                     cache:false,
                     beforeSend: function (xhr) { xhr.setRequestHeader('Authorization', token); }
                 }
              );
      

      或者您可以在 beforesend 选项中单独设置特定请求。

          beforeSend: function (xhr) { xhr.setRequestHeader('Authorization', token); }
                 }
      

      【讨论】:

        【解决方案3】:

        首先,您必须在脚本行的开头进行设置:

            $(function () {
                var token = $('input[name="_csrf"]').val();
                $(document).ajaxSend(function(e, xhr, options) {
                    console.log("ajax token!!!");
                    xhr.setRequestHeader('X-CSRF-Token', token);
                });
            });
        

        然后您通常可以进行所有 ajax 调用...

            $(function(){
                $('#ddlGiro').change(function(){
                    var contentResult=document.getElementById('divComboComercio');
                    var giro = $("#ddlGiro").val();
                     $.ajax({
                         url: [[@{'/comun/comercios/obtener/'}]] + giro,
                         data:  {"origen" : 'AsignarLote'},
                         dataType:'text',
                         cache:false,
                         type:'POST',
                         success:function(response){
                             contentResult.innerHTML=response;
                         }                           
                     });
                });
            });
        

        【讨论】:

          猜你喜欢
          • 2017-05-17
          • 1970-01-01
          • 1970-01-01
          • 2018-06-09
          • 2016-06-22
          • 2011-08-13
          • 2020-01-25
          • 1970-01-01
          • 2014-06-19
          相关资源
          最近更新 更多