首页 新闻 会员 周边 捐助

Jquery Ajax 12030错误

0
悬赏园豆:40 [已解决问题] 解决于 2012-09-14 22:03

<head>

    <script src="../JS/jquery-1.7.2.min.js" type="text/javascript"></script>

</head>
<body>
    <div id="divPanel">
    </div>

    <script type="text/javascript">
        $.ajax({
            type: "POST",
            url: "http://192.168.1.100/Demo/Test/Demo.ashx",
            dataType: "text",
            async: true,
            cache: false,
            data: { name: 'test' },
            success: function(data) {
                $("#divPanel").text(data);
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert('当你狂刷新页面的时候就弹出来了');
            }
        });
    </script>

</body>

<%@ WebHandler Language="C#" class="Demo" %>

using System;
using System.Web;

public class Demo : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        string dateString = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss--fffffff");
        context.Response.Write(dateString);
    }
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

当我们狂刷新的时候老出现12030错误,但是在不同浏览器里面报错的几率不一样

李财的主页 李财 | 初学一级 | 园豆:178
提问于:2012-09-14 10:48
< >
分享
最佳答案
0

应该是SOCKET错误,服务器因为某些原因重置或终止了当前连接。

收获园豆:10
Launcher | 高人七级 |园豆:45050 | 2012-09-14 10:53

嗯,确实是这个问题。同时官网给给出了这个错误代码的定义,但是我没有找到解决的办法。

李财 | 园豆:178 (初学一级) | 2012-09-14 10:56

@李财: 我建议你先做个排查,把POST http://192.168.1.100/Demo/Test/Demo.ashx 改成 GET http://192.168.1.100/Demo/Test/Demo.txt",也就是说使用IIS自带的StaticFileHandler来测试下是否为服务器端的问题。

Launcher | 园豆:45050 (高人七级) | 2012-09-14 10:59
其他回答(4)
0
收获园豆:20
artwl | 园豆:16736 (专家六级) | 2012-09-14 10:52

修改为get出现问题的几率会小很多,但是还是会出现问题。另外项目中没有中文名称。把data属性去掉出现问题的几率也要小多了。但是只要不断刷新,问题还是会出现的

支持(0) 反对(0) 李财 | 园豆:178 (初学一级) | 2012-09-14 10:55
0

弱弱的问下, Response 不需要 end 吗 ?

收获园豆:10
张坤 | 园豆:1865 (小虾三级) | 2012-09-14 11:06

ashx是不需要end的,当然你也可以调用end方法,但是问题依旧会出现。而已这中问题是间断性的出现,连出现的频率都不确定

支持(0) 反对(0) 李财 | 园豆:178 (初学一级) | 2012-09-14 11:08

@李财: 我来本地试试吧,

支持(0) 反对(0) 张坤 | 园豆:1865 (小虾三级) | 2012-09-14 11:09

@李财: 

 

setTimeout(function () {
$.ajax({
type: "GET",
url: "test.ashx?" + +new Date(),
success: function (data) {
$("#divPanel").text(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('当你狂刷新页面的时候就弹出来了');
}
});
}, 500);

 

作个延时处理吧!

支持(0) 反对(0) 张坤 | 园豆:1865 (小虾三级) | 2012-09-14 11:26

@张坤: 延迟还是会出现问题的

支持(0) 反对(0) 李财 | 园豆:178 (初学一级) | 2012-09-14 15:45

@李财:  恩,我在本地试了,没有呢,要不你把时间改成 1000,对了,为什么会有如此需求?

支持(0) 反对(0) 张坤 | 园豆:1865 (小虾三级) | 2012-09-14 15:46

@张坤: 这并非一个特殊需求,就是在平常的应用中出现的一个bug而已。刷新只是为了模拟

支持(0) 反对(0) 李财 | 园豆:178 (初学一级) | 2012-09-15 08:39
0

为毛要狂刷页面呢?

chenping2008 | 园豆:9836 (大侠五级) | 2012-09-14 11:45

刷新的目的只是为了让错误再现,没其他意思。因为这样的错误在项目中随时都有出现的几率

支持(0) 反对(0) 李财 | 园豆:178 (初学一级) | 2012-09-14 15:45
0

最可能的原因你防火墙或其他分发代理软件,它认为你这是恶意请求,就会直接中断你的请求。特别是POST,因为网络中大部分是GET请求。

彭伟 | 园豆:204 (菜鸟二级) | 2012-09-15 08:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册