如何在JavaScript中为Laravel设置CSRF



我只使用javaScript。

我知道jQuery将设置为CSRF,

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

但是我如何在JavaScript中使用" CSRF-Token"?

所有ajax调用的常见设置有可能吗?

用于使用CSRF代币在所有ajax呼叫中使用您在主布局刀片文件中所包含的代码。

在布局标题中:

 <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请求。

谢谢

您可以包含布局标头,以上相同

但是,如果您想使用纯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);

希望帮助您的代码^^

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

我也有与您相同的问题。但是我找到了解决方案,您可以查看本文如何将CSRF_Token()在Laravel的外部JS文件中包含。您只需在HTML

中添加一个元标记
<meta name="_token" content="{{ csrf_token() }}">

希望可以帮助您的问题。

最新更新