需求
想模拟这种情况 因为网络延迟 导致并未及时收到服务端的返回 于是客户端刷新页面 这时之前的客户端会话肯定就终止了
模拟代码如下
<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
命令后,服务端就能接收到请求
问
如何模拟一个只发不接的请求 即发送出去后 不接收返回 直接关闭会话呢?
貌似没有onSend这个事件吧
可以这样:根据这个文档:https://developer.mozilla.org...,可以监听
onReadyStatusChange
事件,然后当状态变为HEADERS_RECEIVED
的时候abort
,这样虽然也收到的response
的头,至少body还没开始下载。。