流明ajax帖子

Posted

技术标签:

【中文标题】流明ajax帖子【英文标题】:Lumen ajax post 【发布时间】: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中的中间件了吗? 【参考方案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';
 );

【讨论】:

我认为绝对路径不是问题。我测试了,你的解决方案不起作用

以上是关于流明ajax帖子的主要内容,如果未能解决你的问题,请参考以下文章

如何解决表单帖子和ajax帖子之间的奇怪冲突?

两个帖子之间的Laravel中的Ajax帖子错误

使用 ajax 的重复帖子加载更多 wordpress

使用带有多选复选框的 Ajax 帖子过滤器获取帖子

AJAX 为 WordPress 帖子加载更多内容

PHP 从 AJAX 帖子中获取数据并过滤它