簡體   English   中英

為什么socket.io弄亂了我的Ajax標頭?

[英]Why socket.io is messing up my ajax headers?

我在ajax請求中使用自定義標頭:

$.ajaxSetup({
                beforeSend: function (xhr)
                {
                    xhr.setRequestHeader("Authorization",  'Bearer ' + token);
                    xhr.setRequestHeader("Accept",  'application/json');
                }
            });

直到我將socket.io chat添加到我的應用程序之前,它的工作都很棒。 當我包含由我的socket.io服務器提供的socket.io.js文件時,我的標頭不見了:(

當然可以在每個ajax請求中放入標頭,但這並不方便。 我最初的方法是更清潔。

有人可以幫我嗎? 為什么我的標頭不見了? 有沒有辦法讓他們在使用socket.io時再次工作?

UPDATE

當我擺脫socket.io.js腳本時,包括:

<script src="http://localhost:6001/socket.io/socket.io.js"></script>

一切都很好。 不,沒有錯誤,因為我是這樣做的:

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

UPDATE2

好吧,問題可能不是socket.io,而是laravel-echo(使用socket.io進行廣播)。

如果您注釋掉該Echo代碼怎么辦?

看,我所能做的就是評論我所看到的代碼。 我堅持我的主張,即socket.io中沒有任何東西與jQuery Ajax調用混淆。

因此,問題可能是由在socket.io處於活動狀態時運行的代碼引起的,而不是由socket.io本身引起的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM