【问题标题】:Lumen ajax post流明ajax帖子
【发布时间】:2016-01-30 22:11:03
【问题描述】:

我正在使用框架Lumen 开发一个Web 应用程序。我到处寻找,我尝试了所有方法,但找不到解决问题的方法..

我有一个表单,我想使用带有 POST 的 ajax() 使用 jQuery 进行验证。我尝试使用csrf_token,但总是没有成功。

查看

<form id="form">
    <div class="form-group">
        <input type="text"  class="form-control" name="test" placeholder="Test">
    </div>
    <button type="button" class="btn btn-primary btn-block valide">Submit</button>
</form>

JS

$('.valide').click(function () {
    var form = $(this).parents('form');
    $.ajax({
        type: 'POST',
        url: '/testAjax',
        dataType: 'JSON',
        data : form.serialize()
    }).done(function (data) {
        // done
    }).fail(function () {
        // fail
    });
});

routes.php

$app->post('/testAjax', function () {
    return 'I am here';
});

通常我会收到“我在这里”的消息,但相反,我会收到以下错误(请注意,如果我使用 GET 发出相同的请求,它会很好地工作):

POST http://localhost/testAjax 500 (Internal Server Error)

如何使用 Lumen 发出 ajax POST 请求?

【问题讨论】:

  • 你能看一下流明日志文件吗? 500 错误可能来自网络服务器的配置错误,甚至是应用程序中的异常。
  • 你取消注释bootstrap/app.php中的中间件了吗?

标签: jquery ajax laravel post lumen


【解决方案1】:

此外,如果有人不通过表单发送 jQuery POST,您可以简单地添加到下面的脚本代码中:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

记得在你的视图中包含这个 html:

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

【讨论】:

  • 也感谢您的回答。请注意符号{{ csrf_token() }} 需要使用Blade
  • 确定是内部自建方法;)
【解决方案2】:

我找到了解决方案。只需将以下代码添加到 HTML 表单,即可将用户关联到当前表单。这在documentation 中有描述。

查看

<form id="form">
    <!-- Added the following line -->
    <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
    <div class="form-group">
        <input type="text"  class="form-control" name="test" placeholder="Test">
    </div>
    <button type="button" class="btn btn-primary btn-block valide">Submit</button>
</form>

【讨论】:

    【解决方案3】:

    改变路线

     $app->post('/testAjax', function () {
        return 'I am here';
     });
    

     $app->post('testAjax', function () {
        return 'I am here';
     });
    

    【讨论】:

    • 我认为绝对路径不是问题。我测试了,你的解决方案不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 2021-09-17
    • 2011-12-21
    • 2011-11-25
    • 2015-04-07
    相关资源
    最近更新 更多