【发布时间】:2018-11-20 02:57:06
【问题描述】:
我对通过 Laravel 进行的 Ajax 请求有一个大问题。我不明白为什么它不是 Ajax。所有资源都在这里。
这是我的 Ajax 请求。
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
var nickname = "<?php echo $name_user; ?>";
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('.subscribe').click(function() {
jQuery.ajax({
type: 'post',
url: "{{ route('postSubscribe', '<?php echo $name_user; ?>') }}", //Путь к обработчик
data: {'user_name': nickname},
response: 'text',
success: function(data) {
console.log(data['result']);
},
error: alert('Error');
})
})
</script>
这是我的网络路线。
Route::group(['middleware' => 'auth'], function() {
Route::get('/', 'AccountController@redirectToAccountPage');
Route::get('/account', 'AccountController@showAccount')->name('account');
Route::get('/account/settings', 'AccountController@showSettings')->name('settings');
Route::post('/account/settings', 'AccountController@sendSetting');
Route::get('/account/subscribe', 'AccountController@showSubscriberForm')->name('subscriber');
Route::post('/account/subscribe', 'AccountController@findUser')->name('postFindUser');
Route::get('/account/load_image', 'AccountController@showLoadImage')->name('load_image');
Route::post('/account/load_image', 'Photos\LoadPhotoController@loadPhoto');
Route::post('/account/logout', 'AccountController@logout')->name('logout');
Route::post('/user/{user_name}/', 'AccountController@subscribe')->name('postSubscribe');
Route::get('/admin', 'AccountController@showAdminPanel');
});
这是我的主要要求。
public function subscribe(Request $request, $name_user) {
if($request->ajax()) {
$query = 'SELECT id FROM subscriptions WHERE id_subscriber = ? AND id_subscribtion = ?';
$queryFindAnother = 'SELECT id From new_users WHERE nickname = ?';
$idAnotherUser = DB::select($queryFindAnother, [$name_user]);
if(!DB::select($query, [Auth::user()->id, $idAnotherUser[0]->id])) {
$query = 'INSERT INTO subscriptions (id_subscriber, id_subscribtion) VALUES (?, ?)';
dd('Я здесь');
//id_subscriber - тот, кто подписался.
//id_subscribtion - на кого подписан.
DB::insert($query, [Auth::user()->id, $idAnotherUser[0]->id]);
return response()->json([
'result' => '1', //всё прошло успешно, я подписан
]);
}
return back();
}
dd("It's not ajax");
return back();
}
结果我收到了“这不是 Ajax”的消息。请帮帮我!
【问题讨论】:
-
请添加与.subscribe类关联的HTML元素
-
url: "{{ route('postSubscribe', '<?php echo $name_user; ?>') }}",...这看起来像是你把事情搞混了。试试{{ route('postSubscribe', $name_user) }}",吧。 -
@emtiaz-zahid,它已经存在。 也许我的问题可能与空操作有关,但我有一条路线......
-
@peter,你解决我问题的方法行不通。再次尝试帮助我。谢谢你以前的方式。
标签: javascript php laravel logic