我们正在开发laravel 5.1。
虽然我做到了,但我想在ajax中获取数据,它将是500(内部服务器错误)。
会不会有麻烦不知道。你们越了解你们的教授,就越好。
route.php
Route::post('/getData', 'MasterController@getData');
view.blade.php
<script type="text/javascript">
$(function($) {
$(document).ready(function() {
getData();
});
$.ajaxSetup({
headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') }
});
function getData() {
$.ajax({
type: 'POST',
url: '/getData',
data: {
'id': $('[name=id]').val()
},
success: function(data, dataType) {
alert(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('Error : ' + errorThrown);
}
});
}
});
</script>
:
:
{!! Form::open(array('url' => '/commit')) !!}
:
:
{!! Form::close() !!}
:
:
MasterController.php
public function getData() {
if (Request::ajax()) {
var_dump('bbb');
}
else {
var_dump('aa');
}
}
我相信,由于您使用的是Form
外观,它会自动插入除AJAX标头之外的CSRF Token
。CSRF令牌的重复会混淆中间件。简单的解决方案是不使用Form
facade:
<from action="{{url('/comment')}}" method="post" name="barform">
...
</form>