如何在 Laravel 的外部 js 文件中包含 csrf_token()?

Posted

技术标签:

【中文标题】如何在 Laravel 的外部 js 文件中包含 csrf_token()?【英文标题】:How to include csrf_token() in an external js file in Laravel? 【发布时间】:2015-08-21 13:39:24 【问题描述】:

最初,我使用 <script> 标记在我的 html 页面中编写了所有 javascript 代码。

在 JavaScript 中的 jQuery 中的 post 调用是这样的。

$.post('store','_token':'csrf_token()', function(data) /*a bunch of code*/ );

代码运行良好。但是,后来我把我所有的脚本都放到了一个外部的 js 文件中。并且代码不再工作了。

csrf_token() 有问题,错误是

compiled.php 中的 TokenMismatchException

如果我想用 Laravel 外部 js 文件怎么办?

【问题讨论】:

【参考方案1】:
    将带有令牌的<meta>标签添加到刀片布局中:
<meta name="_token" content=" csrf_token() ">
    设置 ajax 请求:
$(function() 
  $.ajaxSetup(
    headers: 
      'X-CSRF-Token': $('meta[name="_token"]').attr('content')
    
  );
);

现在您可以使用$.post(),而无需每次都提供_token

【讨论】:

@FaizuddinMohammed 可以在here找到相关文档。 噢..是的。那很有用。谢谢!

以上是关于如何在 Laravel 的外部 js 文件中包含 csrf_token()?的主要内容,如果未能解决你的问题,请参考以下文章

在 nuxt.js 页面中包含外部 javascript 文件

如何在 VSCode 扩展包中包含 node_modules 文件夹?

如何在 laravel 中包含扩展布局文件?

如何在 asp.net 页面中包含外部 html 文件

GWT - IE 不下载 UiBinder 中包含的外部脚本

在 laravel 中包含 php 文件的位置以及如何使用 javascript 调用 php 文件中的特定函数