如何模拟一个只发不接的请求 即发送出去后 不接收返回 直接关闭会话呢?

需求

想模拟这种情况 因为网络延迟 导致并未及时收到服务端的返回 于是客户端刷新页面 这时之前的客户端会话肯定就终止了

模拟代码如下

<script>
var url = 'https://m.foobar.com/activity/coupon/receive?token=foobar&t=foobar'
var ajax = new XMLHttpRequest();
ajax.open("POST",url, true);

ajax.send(); // 发送请求

ajax.abort(); // 废弃请求 模拟客户端刷新或显式关闭 如关闭Tab
</script>

但是发现服务端并没有收到请求,似乎执行了abort, 请求并没有发送出去, 当注释了abort命令后,服务端就能接收到请求

如何模拟一个只发不接的请求 即发送出去后 不接收返回 直接关闭会话呢?

阅读 3.6k
1 个回答

貌似没有onSend这个事件吧
可以这样:根据这个文档:https://developer.mozilla.org...,可以监听onReadyStatusChange事件,然后当状态变为HEADERS_RECEIVED的时候abort,这样虽然也收到的response的头,至少body还没开始下载。。

推荐问题