只是一个简单的问题,以供一般理解。可能是开放的网络套接字连接正在阻止 ajax 请求吗?因为 ajax 请求在网络套接字连接初始化之前工作得很好,而在我建立网络套接字连接之后什么也没有发生。
$.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 请求有效,第二个请求在我单击按钮时无效。有没有关于这个主题的信息,如果网络套接字真的阻止了 ajax 请求,那么让它运行的解决方法是什么?谢谢。
最佳答案
调用应该是异步的,但可能连接失败了。尝试为 websocket 添加一个 onerror 处理程序,看看会发生什么。
ws.onerror = function(){ console.log(evt.data); }
此外,如果您可以制作一个 JSFiddle 或包含 HTML,则可能是按钮事件处理程序错误并且它与 websocket 代码根本无关。
关于javascript - 打开的网络套接字连接是否阻止了 ajax 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17640816/