日期:2014-05-17  浏览次数:20543 次

Ajax请求ashx页面疑问
前台代码

<head>
    <script src="../JS/jquery-1.7.2.min.js" type="text/javascript"></script>
</head>
<body>
    <script type="text/javascript">
        $.ajax({
            type: "POST",
            url: "Demo.ashx",
            dataType: "text",
            async: true,
            cache: false,
            data: { name: 'test' },
            success: function(data) {
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert('当你狂刷新页面的时候就弹出来了');
            }
        });
    </script>
</body>
</html>

后台代码

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

using System;
using System.Web;

public class Demo : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        context.Response.Write("1");
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}


问题描述:我在用AJAX请求ASHX页面的时候请求有时候成功,有时候失败。同样的代码请求aspx页面或者asmx文件里面就不会出现这个问题。我想问下,这是ashx的一个bug吗?当错误出现的时候返回了12030状态码。当然去掉data属性或者把post修改为get等方式也是可以解决这个问题的。微软官网虽然有12030相关的资料,但是并没有给出解决的办法。难道是ashx本身的机制问题吗?求帮忙,谢谢!
------解决方案--------------------


  data: { "val1": v1, "val2": v2 }, //注意!!!ASHX和WebService传data格式不同!!这是WS的 data: "{val1:'" + v1 + "',val2:'" + v2 + "'}",

引号问题 你试试
------解决方案--------------------
我当时碰到的问题跟你一样  后来就是data传值写法不一样 你可以试试先
引用:
引用:
JScript code

data: { "val1": v1, "val2": v2 }, //注意!!!ASHX和WebService传data格式不同!!这是WS的 data: "{val1:'" + v1 + "',val2:'" + v2 + "'}",


引号问题 你试试

谢谢你的回答,不是引号问题。你可以测试下就可以看到效果了

------解决方案--------------------
如果不报异常的方案如下


方案一:

POST  修改成&nbs