Laravel和AJAX 401未经授权
如何获取代码,以便在我的AJAX按钮单击代码出现401错误时,它要么在单击按钮时抛出错误消息并说“您需要登录”,要么重定向用户登录?目前,它只是在开发人员控制台中抛出错误,因此用户不知道为什么按钮不起作用 Ajax js:Laravel和AJAX 401未经授权,ajax,laravel,laravel-5,Ajax,Laravel,Laravel 5,如何获取代码,以便在我的AJAX按钮单击代码出现401错误时,它要么在单击按钮时抛出错误消息并说“您需要登录”,要么重定向用户登录?目前,它只是在开发人员控制台中抛出错误,因此用户不知道为什么按钮不起作用 Ajax js: $('.visit').on('click', function (event) { event.preventDefault(); // Make the button a variable here var buttonToChange = $(this); $.ajax
$('.visit').on('click', function (event) {
event.preventDefault();
// Make the button a variable here
var buttonToChange = $(this);
$.ajax({
method: 'POST',
url: urlVisit,
data: {
place_id: $(event.target).data("id"),
_token: token
},
success: function(){
// Change the button here
if(buttonToChange.hasClass('btn-visited')){
buttonToChange.addClass('btn-not-visited');
buttonToChange.removeClass('btn-visited');
buttonToChange.html('Not Visited');
//Count will go down
}
else{
// Do the opposite
buttonToChange.addClass('btn-visited');
buttonToChange.removeClass('btn-not-visited');
buttonToChange.html('Visited');
//count will go up
}
},
});
简单例子
您可以通过浏览器中的inspect
来测试此代码:
welcome.blade.php
:
<script>
var urlVisit="{{route('route_test')}}"
var token = "{{csrf_token()}}"
$.ajax({
method: 'POST',
url: urlVisit,
data: {
place_id: 1,
_token: token
},
success: function (response) {
alert('ok')
},
error: function (xhr, ajaxOptions, thrownError) {
if (xhr.status == 419)
{
alert(xhr.responseText) // text of error
// do something
}
else if(xhr.status == 401)
{
// do something
}
}
});
</script>
您可以尝试jqueryajax的
statusCode
部分
$('.visit').on('click', function (event) {
event.preventDefault();
// Make the button a variable here
var buttonToChange = $(this);
$.ajax({
method: 'POST',
url: urlVisit,
data: {
place_id: $(event.target).data("id"),
_token: token
},
statusCode: {
401: function() {
alert( "Not authenticated" );
}
}
success: function(){
// Change the button here
if(buttonToChange.hasClass('btn-visited')){
buttonToChange.addClass('btn-not-visited');
buttonToChange.removeClass('btn-visited');
buttonToChange.html('Not Visited');
//Count will go down
}
else{
// Do the opposite
buttonToChange.addClass('btn-visited');
buttonToChange.removeClass('btn-not-visited');
buttonToChange.html('Visited');
//count will go up
}
},
});
这是如何处理401未经授权的消息的。我知道这个信息是什么,我只想显示一条错误消息或重定向,而不是在收到此错误时不显示任何内容。在前端处理吗?是的,我想在前端处理401,方法是显示一条错误消息提示用户登录,或将他们重定向到登录页不,祝你好运,我的朋友,错误仍然显示,我在if-else中没有做任何更改
$('.visit').on('click', function (event) {
event.preventDefault();
// Make the button a variable here
var buttonToChange = $(this);
$.ajax({
method: 'POST',
url: urlVisit,
data: {
place_id: $(event.target).data("id"),
_token: token
},
statusCode: {
401: function() {
alert( "Not authenticated" );
}
}
success: function(){
// Change the button here
if(buttonToChange.hasClass('btn-visited')){
buttonToChange.addClass('btn-not-visited');
buttonToChange.removeClass('btn-visited');
buttonToChange.html('Not Visited');
//Count will go down
}
else{
// Do the opposite
buttonToChange.addClass('btn-visited');
buttonToChange.removeClass('btn-not-visited');
buttonToChange.html('Visited');
//count will go up
}
},
});