如何在JavaScript中为laravel设置CSRF?

时间:2017-02-22 04:56:06

标签: javascript laravel csrf csrf-protection

我只使用JavaScript。

我知道jQuery将设置CSRF,

  $(function() {
   $.ajaxSetup({
     headers: {
       'X-CSRF-Token': $('meta[name="_token"]').attr('content')
    }
  });
});

但我怎么能使用" CSRF-Token"在JavaScript?

是否有可能对所有Ajax Call进行常见设置?

3 个答案:

答案 0 :(得分:4)

要对所有ajax调用使用通用的csrf令牌,请将以下代码放在主布局刀片文件中。

在布局标题中:

 <meta name="csrf-token" content="{{ csrf_token() }}" />

在布局页脚中:

    <script type="text/javascript">   
    jQuery(document).ready(function() {       
        jQuery.ajaxSetup({        
            headers: {            
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')        
            }    
        });    
    });
</script>

这适用于您的所有ajax请求。

由于

答案 1 :(得分:2)

您可以包含上面相同的布局标题

但是如果你想使用纯javascript来包含令牌,你可以使用:

var xhttp = new XMLHttpRequest();
xhttp.open("POST", url , true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.setRequestHeader("X-CSRF-TOKEN", document.head.querySelector("[name=csrf-token]").content );
xhttp.send(params);

希望能帮助你的代码^^

答案 2 :(得分:1)

您可以像这样在ajax中传递csrf令牌:

   $.ajax({  
             url: "/user.php",  
             method:"post",  
             data: { 'user_id':user_id,
                    '_token': "{{ csrf_token() }}" }, 
             success:function(data){console.log(data);}
          });