На моем сайте есть запрос Ajax методом GET
.Есть входящие сообщения, некоторые непрочитанные сообщения записываются где-то, где, как только пользователь прочитал непрочитанное сообщение, я обновляю количество непрочитанных сообщений, используя Ajax-запрос к серверу, чтобы получить новое.
Проблема в том, что количество непрочитанных сообщений прямо на стороне сервера, но ответ Ajax не тот, что говорит сервер после прочтения нескольких непрочитанных сообщений.Например, если есть 4
непрочитанных сообщений, когда я нажимаю на сообщение, оно становится 3
, когда я нажимаю на другое непрочитанное сообщение, оно будет 3
снова не 2
, когда я смотрю на ответ серверанепосредственно в браузере (запрос GET), это 2
, а не 3
.Поэтому я уверен, что серверная сторона права, но ответ Ajax - нет.
Это мой код, в нем есть несколько кодов Laravel для указания маршрута.Ajax-запрос с комментарием //this is request to unread message
имеет проблему.
<script>
$(function () {
$.ajaxSetup({
cache: false
});
$(document).on('click', '.messageOutline .card-header', function () {
var url = '{{route('messages.loadMessage', ":id")}}';
url = url.replace(":id", $(this).parent().parent().attr('id'));
$.get(url).done(function (data) {
$("#messageColumn").html(data);
});
if($(this).hasClass('text-primary')){
$(this).removeClass('text-primary').addClass('text-dark');
var url = '{{route('messages.unreadMessages', ":id")}}';
url = url.replace(":id", $(this).attr('id').substring(16));
var id = $(this).attr('id').substring(16);
$.get({url:url}).done(function (data) {//this is request to unread messages
alert("sent" + data);
if(data == 0)
$("#user-"+id).find('.count').remove();
else{
$("#user-"+id).find('.count').html(data);
}
});
}
})
});
</script>