【问题标题】:Laravel dynamic form building with JSLaravel 使用 JS 构建动态表单
【发布时间】:2016-12-14 09:05:08
【问题描述】:

我正在开发一个 Laravel 应用程序,我在我的 javascript 中内置了一个表单,我正在动态地尝试根据我的下拉选择的值设置操作和方法并发布表单。

表格代码:

function _RemoveForm(url){
    var delete_form = '{{ Form::open(array("method" => "GET", "id" => "_RemoveForm")) }} {{ Form::close() }}';
    return delete_form;
}

当我在 js 中使用 form.submit() 发布此表单时,我可以路由/重定向到编辑或索引,但是当我发布此表单以销毁需要“发布”方法时,它会显示

TokenMismatchException in VerifyCsrfToken.php line 68:

是否可以创建这样的表单并发布到操作?或者我应该尝试其他方法。

编辑:

表单是从这样的字符串创建的:

var form = "{{ Form::open(array("method" => "GET", "id" => "_RemoveForm")) }} {{ Form::close() }}";
    $("body").append(form);

    form = $("#_RemoveForm");

    form.attr('action', url);

    if(method == 'delete'){
        form.attr('method', 'post');
        form.append('<input name="_method" type="hidden" value="DELETE">');
    }

    form.submit();

这一切都是在下拉列表的更改事件中完成的。

【问题讨论】:

    标签: javascript php jquery forms laravel-5


    【解决方案1】:

    CSRF 令牌是否随您的请求一起发送?例如

    $.ajaxSetup({
                    headers: {
                        'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
                    }
                });
    
    <meta name="_token" content="{{ csrf_token() }}">
    

    【讨论】:

      猜你喜欢
      • 2021-04-17
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      • 2011-12-09
      相关资源
      最近更新 更多