如何在laravel 5.2中控制多个ajax请求
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在laravel 5.2中控制多个ajax请求相关的知识,希望对你有一定的参考价值。
我正在开发一个应用程序,根据不同的操作,不同的ajax请求会触发。
例如,存在具有发送按钮的聊天窗口。当我点击该按钮时,成功发送带有ajax的空消息。它很好用。但是当我按下发送按钮太多次时,启动时一些请求响应200(确定)但是它响应500(内部服务器错误)。因此,像updateLastActivity一样持续发出的其他请求也会打扰。开发人员工具中的错误预览是:哎呀像出了问题。
注意:当我在核心php中创建这个聊天系统时,它工作正常。我也发送请求时没有内部服务器错误。
这是我正在使用的代码
//the following code is used to send the message
$(document).on('click','.send_message_bt',function(event){
event.preventDefault();
var id=$(this).data('id');
var name=$(this).data('name');
var message=$("#message_field-"+id).val();
$.ajax({
//headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
headers: { 'X-CSRF-TOKEN': {!! json_encode(csrf_token()) !!} },
url:'{{route('user.sendmessage')}}',
type:'POST',
data:{
id:id,
message:message
},
success:function(data,status){
//clear the message field value
$("#message_field-"+id).val('');
//update the chat history
fetchChatHistory(id,name);
},
error:function(response){
if(response.status==401){
alert('You are not logged in!');
window.location=window.location.href;
}
}
});
});
这是后端代码
public function sendMessage(Request $request){
$message=new Userchatmessage();
$message->message=$request->message;
$message->sender_id=Auth::user()->id;
$message->receiver_id=$request->id;
$message->save();
return response('success');
}
如何解决这个问题。
答案
我想这不是Laravel或其他什么问题,而是你的浏览器。每个浏览器都具有为特定域打开的最大同时连接数。
如果您想制作实时聊天应用程序,请考虑使用NodeJS和Socket.io之类的东西。
另一答案
异步和等待可以提供帮助。让一个异步函数
async function doAjax(){
await runFirstAjaxCall();
await runAfterFirstAjaxCallSuccess();
....
....
}
doAjax();
以上是关于如何在laravel 5.2中控制多个ajax请求的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 post 方法将数据从 ajax 传递到 laravel 5.2 控制器
如何通过邮件方法将数据从 ajax 传输到 laravel 5.2 控制器
Laravel 5.2 无法将跨域 jQuery 方法识别为 AJAX