我正在一个用户可以加入群组的系统上工作。如果用户完全满足两个条件,则可以发出ajax请求
我当前在会话中保存错误消息。如果用户未登录,我想做一个特定的任务,否则,如果用户已经加入该组,我想做一个特定的任务。
这是我的身份验证代码,它在控制器方法之前运行
public function authorize()
{
//authorize that user must be logged in
if(session()->get('uid')!=NULL){
//authorize that user must not join this group before
$status=Usergroup::where(['user_id'=>session()->get('uid'),
'group_id'=>$this->chamber_id])->exists();
if($status){
session()->put('join_group_auth_error','already_joined');
return false;
}
else{
return true;
}
}
else{
session()->put('join_group_auth_error','not_login');
return false;
}
}
这是ajax请求
function joinChamber(chamber_id){
$.ajax({
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
url:'{{route('join.group')}}',
type:'post',
data:{group_id:group_id},
success:function(response,status){
if(response=='joined'){
$("#joinbuttondiv-"+chamber_id).html('<span
class="bodybadge">Joined</span>');
}},
error:function(response){
if(response.status==403){
@if(session()->get('join_group_auth_error')=='not_login')
{{session()->forget('join_group_auth_error')}}
openRegisterModal();
@elseif(session()-
>get('join_group_auth_error')=='already_joined')
{{session()->forget('join_group_auth_error')}}
alert('You have already joined this group.');
window.location=window.location.href;
@endif
}
}
});
此系统可以正常运行,但并非每次都可以。 例如,我在视图中必须提出ajax请求,而我没有登录。当我单击加入按钮时,什么都没有发生,但是刷新页面后,当我单击加入按钮,这正是我想要的。 这是什么原因。 还告诉我,这是确切的方法吗?
答案 0 :(得分:0)
在浏览器中查看控制台,然后单击错误(红色)链接,它向您显示服务器错误-发生了什么问题。