Php 使用ajax的Laravel表单post
我想用ajax发布一个表单。我的控制台中出现错误: 加载资源失败:服务器响应状态为500(内部服务器错误) 我有一张表格:Php 使用ajax的Laravel表单post,php,jquery,ajax,laravel,Php,Jquery,Ajax,Laravel,我想用ajax发布一个表单。我的控制台中出现错误: 加载资源失败:服务器响应状态为500(内部服务器错误) 我有一张表格: {!! Form::open(array('url'=>'uren','method'=>'POST', 'id'=>'myform')) !!} //inputs here etc.. {{ Form::button('Add', array('class' => 'btn btn-btn send-btn')) }} {{ Form::close
{!! Form::open(array('url'=>'uren','method'=>'POST', 'id'=>'myform')) !!}
//inputs here etc..
{{ Form::button('Add', array('class' => 'btn btn-btn send-btn')) }}
{{ Form::close() }}
我的Ajax:
$(document).ready(function(){
$('.send-btn').click(function(){
$.ajax({
url: 'uren',
type: "post",
data: {
'werk': $('input[name="werk"]').val(),
'starttijd': $('input[name="starttijd"]').val(),
'eindtijd': $('input[name="eindtijd"]').val(),
'omschrijving': $('input[name="omschrijving"]').val(),
'_token': $('input[name="_token"]').val()},
success: function(data){
alert(data);
}
});
});
});
路由中(web.php):
在控制器中:
public function store() {
if (\Request::ajax()) {
if(Request::input('omschrijving') != '') {
$omschrijving = Request::input('omschrijving');
}else{
$omschrijving = '';
}
DB::table('uren')->insert(
[
'userID' => Auth::user()->id,
'datum' => Carbon\Carbon::now(),
'projectID' => Request::input('werk'),
'starttijd' => Request::input('starttijd'),
'eindtijd' => Request::input('eindtijd'),
'omschrijving' => $omschrijving
]
);
}
}
我想我需要用csrf\u令牌做点什么。通过500错误。但是我怎么能做到呢
[更新]
我添加了令牌,可以将令牌发回并在警报中显示令牌。但是当我添加DB::table….
时,它仍然会给我500个错误
[完整]
问题是我的疑问。。字段为空,但必须是字符串。我解决了。如果你不想要CSFR中间件,你可以在laravel 5中禁用它:
要禁用CSFR保护,请执行以下操作:
转到此文件:
app/Http/Middleware/VerifyCsrfToken.php
您可以禁用所有post请求或特定路由。
有关xfer的更多信息:
或
只需在数据中传递另一个参数:{{csrf_token()}},
可能重复感谢您的回答。现在我的代码中有了令牌。我可以通过Ajax请求通知已发送到控制器的令牌。但是当我添加DB::table code
仅供参考时,仍然会出现500个错误,您的if语句(Request::input('omschrijving')!='')毫无意义。检查请求输入是否为空字符串,如果为空字符串,则仍然将$omschrijving
设置为空字符串。您还可以将默认值作为第二个参数提供给Request::input()
,即'omschrijving'=>Request::input('omschrijving','')
谢谢您的回答。我更新了我的帖子。我将令牌发送给我的控制器,并可以在ajax的success
中用alert
显示它。但是,当我添加DB:table…
时,仍然会出现500错误。请提供有关错误的更多详细信息,请使用try-catch或设置错误报告来获取有关错误的更多详细信息我的控制台中的错误:POST 500(内部服务器错误)。如果我能得到更多的信息,我会试试的。。
app/Http/Middleware/VerifyCsrfToken.php