Javascript 为什么socket.io会弄乱我的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');

我在ajax请求中使用自定义头:

$.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'
               },
        },
     });
 }