当前位置: 首页 > 面试题库 >

在Chrome中window.onbeforeunload ajax请求

都浩淼
2023-03-14
问题内容

我有一个网页,可通过Ajax处理机器的远程控制。当用户离开页面时,我想自动与机器断开连接。所以这是代码:

window.onbeforeunload = function () {
  bas_disconnect_only();
}

断开连接功能只是将HTTP GET请求发送到PHP服务器端脚本,该脚本完成了断开连接的实际工作:

function bas_disconnect_only () {
   var xhr = bas_send_request("req=10", function () {
   });
}

在FireFox中可以正常工作。但是使用Chrome,根本不会发送ajax请求。有一个不可接受的解决方法:向回调函数添加警报:

function bas_disconnect_only () {
   var xhr = bas_send_request("req=10", function () {
     alert("You're been automatically disconnected.");
   });
}

添加警报呼叫后,请求将成功发送。但是正如您所看到的,这根本不是一个解决方法。

有人可以告诉我Chrome是否可以实现吗?我正在做的事情对我来说完全合法。

谢谢,


问题答案:

我遇到了同样的问题,其中Chrome没有在window.unload事件中向服务器发送AJAX请求。

如果请求是同步的,我只能使其工作。我能够使用Jquery并将其 async 属性设置为 false

$(window).unload(function () {
   $.ajax({
     type: 'GET',
     async: false,
     url: 'SomeUrl.com?id=123'
   });
});

上面的代码适用于IE9,Chrome 19.0.1084.52 m和Firefox 12。



 类似资料:
  • 问题内容: 在Firefox中,我使用Firebug,它允许我查看我的Ajax调用发出的每个http请求。我已经将开发切换到Chrome,并且到目前为止一直很喜欢。但是,我唯一的抱怨是,开发人员工具似乎不允许您查看每个ajax请求。我曾经在“资源”面板显示对同一资源的多个请求的情况下发生过一次,但是只执行了一次,再也没有做过。 有没有办法可靠地查看Chrome浏览器中通过javascript通过页

  • 问题内容: 最新版本的Chrome是否已停止同步Ajax调用?进行同步Ajax调用时出现错误。我们更新到最新的Chrome版本-73.0.3683.103后,该问题突然出现。目前,同步调用在Firefox和IE上可以正常工作。我们正在错误以下 消息:“无法在’XMLHttpRequest’上执行’发送’:无法加载’Path …’:页面关闭时的同步XHR”。名称:“ NetworkError” 有人

  • 我正试图通过程序验证自己的英超梦幻游戏(https://fantasy.premierleague.com/)。当我登录时检查Chrome inspect中的网络选项卡时,我看到以下post请求和响应… 常规: 请求URL:https://users.premierleague.com/accounts/login/ 请求方法:发送 状态代码:302 远程地址:151.101.866.217:44

  • 我的web客户端应用程序正在通过FetchAPI设置HTTP POST请求。 我看到选项飞行前请求是通过调试代理(Charles proxy)发送的,但它们不会显示在Google Chrome Developer Tools\Network选项卡中。 我没有在“网络”选项卡上设置任何过滤器。我记得选项请求在那里是可见的,但不再是了。我怎么把它们带回来?

  • 问题内容: 因此,我从ionic克隆了教程应用程序仓库。我跑了 然后我添加了一个简单的$ http.get(’myserver’)(我也尝试了ngResources)。 它在chrome上运行完美,我得到了所有数据,但是在角度上,我尝试执行的任何请求都只有空数据和404状态。 注意:我尝试使用托管服务器和本地服务器。两者都无法在Android上运行。服务器是一个node.js REST API。

  • 在编写更复杂的代码前,让我们先来聊聊调试吧。 调试 是指在一个脚本中找出并修复错误的过程。所有的现代浏览器和大多数其他环境都支持调试工具 —— 开发者工具中的一个令调试更加容易的特殊用户界面。它也可以让我们一步步地跟踪代码以查看当前实际运行情况。 在这里我们将会使用 Chrome(谷歌浏览器),因为它拥有足够多的功能,其他大部分浏览器的功能也与之类似。 “资源(Sources)”面板 你的 Chr