[英]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.