只是一个快速的问题,一般的理解。可能是,一个开放的Web套接字连接阻止了ajax请求?因为在web套接字连接初始化之前的ajax请求工作得很好,并且在我建立了Web套接字连接之后没有任何事情发生。
$.ajax({
url: someUrl
}).done(function(data) {
// stuff done and calling initWebSocket()
}).error(function(data) {
// error stuff done
});
function initWebSocket() {
hostname = 'somehost';
ws = new WebSocket('ws://' + hostname + ':' + wsPort);
ws.onopen = function() {
console.log('Connected');
ws.send(initMessage);
}
ws.onmessage = function(msg) {
// do stuff on message received
}
ws.onclose = function() {
console.log('Disconnected');
}
}
$('#someButton').click(function(event) {
event.preventDefault();
$.ajax({
url: someUrl
}).done(function(data) {
console.log(data);
}).error(function(data) {
console.log(data);
});
});
正如前面提到的第一个ajax请求有效,第二个是我点击按钮时没有。有关于此主题的任何人信息,以及Web套接字是否真的阻止ajax请求将使其运行的解决方法是什么?感谢。
答案 0 :(得分:0)
调用应该是异步的,但也许连接失败了。尝试为websocket添加一个onerror处理程序,看看会发生什么。
ws.onerror = function(){ console.log(evt.data); }
此外,如果您可以创建一个JSFiddle或包含HTML,那么按钮事件处理程序可能是错误的,它根本与websocket代码无关。