Laravel和AJAX不返回任何东西
我想从我的数据库中返回数据,但是它带有整个页面的HTML错误。为什么这样做?Laravel和AJAX不返回任何东西
我.ajax()
呼叫:
$.ajax({
url: '{{ URL('reports/groupsUsersGet') }}',
dataType: "json",
data: {
group_id : $('#group').val(),
},
success: function(data) {
alert(data);
},
error: function (data) {
console.log('Error:', data);
}
});
路线
Route::get('reports/groupsUsersGet',
array(
'as' =>'groupsUsersGet',
'uses' => '[email protected]'
)
);
视图(表)
{{ Form::select('grup',$group,null,['class'=>'form-control','id'=>'group']) }}
控制器
$term = Input::get('group_id');
$results = array();
DB::table('users')->where('group', 'LIKE', '%'.$term.'%')->get();
foreach ($queries as $query) {
$results[] = [
'id' => $query->id,
'value' => $query->nick
];
}
return Response::json($results);
也发送csrf_token()
作为数据。
$.ajax({
url: '{{ URL('reports/groupsUsersGet') }}',
dataType: "json",
data: {
_token: <?php echo csrf_token();?>,
group_id : $('#group').val(),
},
success: function(data) {
alert(data);
},
error: function (data) {
console.log('Error:', data);
}
});
groupsUsersGet:1061 Uncaught ReferenceError:XREXnSgsYpN3kJwjXGPguiJYZf6XIYxQa7YsYgDz没有被定义(...)当我抛出令牌部分没有它ajax错误给出状态:200和状态好(这意味着它通过)。 – OunknownO
ya XREXnSgsYpN3kJwjXGPguiJYZf6XIYxQa7YsYgDz这是发送令牌的值。只需取得组id的值。 –
欲了解更多请参阅这里http://dev.tutorialspoint.com/laravel/laravel_ajax.htm –
在我看来,你不是在@HikmatSijapati指定的请求中发送CSRF令牌。在Ajax请求,你可以通过CSRF令牌是这样的:
你可以,例如,存储在HTML元标记令牌:
<meta name="csrf-token" content="{{ csrf_token() }}">
然后,一旦你已经创建了meta标签,你可以指示像jQuery这样的库自动将标记添加到所有请求标头。这为您的基于AJAX的应用程序提供了简单,方便的CSRF保护:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
希望这有助于您!
试试这个:
在你的控制器,你不能定义你的方法里面$queries
变量。
ajax call
$.ajax({
url: "{{ URL('reports/groupsUsersGet') }}",
method: 'GET',
dataType: "json",
data: {
group_id : $('#group').val(),
},
success: function(data) {
alert(data);
},
error: function (data) {
console.log('Error:', data);
}
});
controller
$term = Input::get('group_id');
$results = array();
$queries = DB::table('users')->where('group', 'LIKE', '%'.$term.'%')->get();
foreach ($queries as $query) {
$results[] = [
'id' => $query->id,
'value' => $query->nick
];
}
return Response::json(['results' => $results], 200);
谢谢大家对你的帮助,但这个错误是在我不包括在控制器的顶部使用响应。当我这样做的时候,它工作。
什么是错误?你期待什么? – LorenzoBerti
'$ query'从哪里来?你能指定它吗? –
使用try and catch并告诉确切的错误你正在得到 –