Javascript 可以进行不需要';你不回来了吗?

Javascript 可以进行不需要';你不回来了吗?,javascript,jquery,ajax,Javascript,Jquery,Ajax,是否可以发送jQuery.ajax调用或等效调用而无需任何响应?当我使用onbeforeunload命令离开页面时,我想在服务器上触发一些东西,但我不需要向客户机反馈这些东西,所以我只想发送命令,而不是等待响应 这可能吗?每个请求都有一个响应。即使服务器抛出错误,响应也会带着错误返回 如果不添加success回调,则可以忽略响应 $.ajax({ url: "theURL", data: theData }); 如果您试图尽快返回响应,我认为这更像是服务器体系结构的决定。您可以

是否可以发送jQuery.ajax调用或等效调用而无需任何响应?当我使用onbeforeunload命令离开页面时,我想在服务器上触发一些东西,但我不需要向客户机反馈这些东西,所以我只想发送命令,而不是等待响应


这可能吗?

每个请求都有一个响应。即使服务器抛出错误,响应也会带着错误返回

如果不添加
success
回调,则可以忽略响应

$.ajax({
    url: "theURL",
    data: theData
});

如果您试图尽快返回响应,我认为这更像是服务器体系结构的决定。您可以将请求涉及的实际工作卸载给代理或其他人,以便尽快返回给用户?
我不认为只发送单向消息是可行的

假设您使用的是这样的东西:

$.ajax({
   url: "test.html",
   context: document.body
})

(从
http://api.jquery.com/jQuery.ajax/
和编辑),您可以放弃响应。

您可以使用中提到或直接链接到的navigator sendBeacon API

根据站点上的描述,它异步发送一些数据,并检查是否能够将数据排队发送。卸载处理程序不应该像对待其他异步XMLHttpRequest那样忽略该请求

sendBeacon(url,数据)-如果用户代理能够成功地将数据排队以进行传输,则sendBeacon()方法返回true,否则返回false

确保在卸载文档期间发送数据对于开发人员来说是一件传统上很困难的事情,因为用户代理通常会忽略卸载处理程序中生成的异步XMLHttpRequests


忽略状态更改事件。是的,为什么不呢。只是不要包含任何
success
处理程序(尽管可能希望包含
failure
处理程序以了解它是否正确)。只需发送所需的数据,让服务器端脚本履行其职责。底层HTTP的正常协议是始终发送回响应-但是您可以忽略响应。请确保保留
async
选项,或者将其保留为
true
,这样这是一个异步请求,浏览器不会等待响应。