Javascript 为什么socket.io会弄乱我的ajax标题?
我在ajax请求中使用自定义头:Javascript 为什么socket.io会弄乱我的ajax标题?,javascript,ajax,socket.io,xmlhttprequest,laravel-echo,Javascript,Ajax,Socket.io,Xmlhttprequest,Laravel Echo,我在ajax请求中使用自定义头: $.ajaxSetup({ beforeSend: function (xhr) { xhr.setRequestHeader("Authorization", 'Bearer ' + token); xhr.setRequestHeader("Accept", 'application/json');
$.ajaxSetup({
beforeSend: function (xhr)
{
xhr.setRequestHeader("Authorization", 'Bearer ' + token);
xhr.setRequestHeader("Accept", 'application/json');
}
});
在我将socket.io聊天添加到我的应用程序之前,它一直工作得很好。当我包含socket.io服务器提供的socket.io.js文件时,我的头就不见了:(
当然,我可以在每个ajax请求中添加标题,但这并不方便。我最初的方法更简洁
有人能帮我吗?为什么我的头不见了?有没有办法让它们在使用socket.io时再次工作
更新
当我去掉socket.io.js时,脚本包括:
<script src="http://localhost:6001/socket.io/socket.io.js"></script>
更新2
问题可能不是socket.io,而是laravel echo(它使用socket.io进行广播)。如果您注释掉该echo代码会怎么样 听着,我所能做的就是对我能看到的代码进行注释。我坚持我的断言,socket.io中没有任何东西会干扰jQuery Ajax调用
因此,问题可能是由socket.io处于活动状态时运行的代码引起的,而不是由socket.io本身引起的。我发现很难相信这两件事是相关的。据我所知,socket.io客户端与jQuery完全无关,因此很难相信它会通过删除cus来干扰jQuery ajax调用tom headers。看起来更可能是您同时引入了其他问题。我很难相信这一点,但当我注释出加载脚本的行时(好吧,只注释那一行,可能会导致脚本中其他地方的错误,这些代码试图初始化并使用socket.io连接,这可能会改变其他代码的进程。只有当我们能够看到整个问题,而不仅仅是四行代码时,我们才能真正帮助您。您基本上是在要求我们做出盲目和疯狂的选择。)您将对其进行评论。这对我们帮助解决问题来说不是一种非常有效的方式。我将在更新后回复。如果您对回音代码进行评论会怎么样?看,我所能做的就是对我看到的代码进行评论。我坚持我的断言,socket.io中没有任何东西会干扰jQuery Ajax调用。因此,问题可能是c由socket.io处于活动状态时运行的代码引起,而不是由socket.io本身引起。
if(typeof io !== 'undefined') {
self.echo = window.Echo = new Echo({
broadcaster: 'socket.io',
host: CONFIG.socket_url + ":" + CONFIG.socket_port,
auth: {
headers: {
Authorization: 'Bearer ' + auth.getToken(),
Accept: 'application/json'
},
},
});
}