如何停止页面正在发送的请求

超级字帖 2012-12-13 04:20:09


用ajaxForm做的一个上传,后台用的php语言,

有时上传文件过大,当点击关闭按钮的时候如何停止已经发送出的请求(不刷新页面).
...全文
816 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
超级字帖 2012-12-14
  • 打赏
  • 举报
回复
引用 4 楼 plzzz 的回复:
XMLHttpRequest有个abort的方法,不知是否适用...
谢!在dewen上网友已经给出了例子答案,就是用的这个abort(); html页面
<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
    <script type="text/javascript" src="http://malsup.github.com/jquery.form.js"></script>
</head>
<body>
    <form id="form1" action="post.php" method="post">
        <input name="test" value="" />
        <input type="submit" name="s" value="submit" />
        <input type="button" id="cancel" value="cancel" />
    </form>
    <script type="text/javascript">
        var options = {
            error: function(XMLHttpRequest, textStatus) {
                // 解除取消事件
                $('#cancel').unbind('click');
                alert('click: \n' + textStatus);
            },
            success: function(responseText) {
                // 解除取消事件
                $('#cancel').unbind('click');
                alert('responseText: \n' + responseText);
            }
        };

        $('#form1').submit(function() { 
            $(this).ajaxSubmit(options); 
            var jqxhr = $(this).data('jqxhr');
            // 绑定取消事件
            $('#cancel').bind('click', function(){
                jqxhr.abort();
            });
            return false; 
        }); 
    </script>
</body>
</html>
php
<?php
sleep(10);
var_dump($_POST);
  • 打赏
  • 举报
回复
引用 2 楼 adophper 的回复:
引用 1 楼 showbo 的回复:关闭后浏览器应该自动停止读取文件内容继续上传了吧 不是关闭浏览器,我是希望弹出的一个DIV关闭后停止请求
关闭div的时候刷新一下当前页面,不刷新js直接停掉链接这个应该没办法实现
plzzz 2012-12-14
  • 打赏
  • 举报
回复
XMLHttpRequest有个abort的方法,不知是否适用...
超级字帖 2012-12-13
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
关闭后浏览器应该自动停止读取文件内容继续上传了吧
不是关闭浏览器,我是希望弹出的一个DIV关闭后停止请求
  • 打赏
  • 举报
回复
关闭后浏览器应该自动停止读取文件内容继续上传了吧
(1).测试案例(Testcase)通过Client Lib的接口向Selenium Server发送Http请求,要求和Selenium Server建立连接。 为什么要通过发送Http请求控制Selenium Server而不采用其他方式呢?从上文可以看出,Selenium Server是一个独立的中间服务器(确切地说是代理服务器),它可以架设在其他机器上!所以测试案例通过发送HTTP请求去控制Selenium Server是很正常的。 (2).Selenium Server的Launcher启动浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy。 (3).测试案例通过Client Lib的接口向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作。 (4).Selenium Core接收到指令后,执行操作。 (5).浏览器收到新的页面请求信息(因为在(4)中,Selenium Core的操作可能引发新的页面请求),于是发送Http请求请求新的Web页面。 由于Selenium Server在启动浏览器时做了手脚,所以Selenium Server会接收到所有由它启动的浏览器发送请求。 (6).Selenium Server接收到浏览器的发送的Http请求后,自己重组Http请求,获取对应的Web页面。 (7).Selenium Server的Http Proxy把接收的Web页面返回给浏览器。 因为浏览器存在同源策略,所以Selenium RC中的Selenium Server需要以这种代理模式运行。

52,784

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧