流明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帖子的主要内容,如果未能解决你的问题,请参考以下文章