zoukankan      html  css  js  c++  java
  • ajax正确返回数据,却进入了error分支

    .net 开发:

    $.ajax({
            type: "POST",  //post没有数据量限制
            url: "ashx/PostHandle.ashx",
            data: { "datatype": "1", "event_name": event_name, "placename": placename, "starttimestamp": starttimestamp, "endtimestamp": endtimestamp }
            contentType: "text/plain; charset=utf-8",
            dataType: "json",   //必须
            beforeSend: function () {
                //$("#loading_bind")[0].style.visibility = "visible";
            },
            success: function (data) {
                alert('data');
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert("服务器响应提交失败,请重试...");
            },
            complete: function () {
                //$("#loading_bind")[0].style.visibility = "hidden";
            }
        });

    后台ashx:

    public void ProcessRequest (HttpContext context) {
            context.Response.Clear(); //清除所有之前生成的Response内容
            //context.Response.ContentType = "text/plain";
            StreamReader stream = new StreamReader(context.Request.InputStream);
            string xml = stream.ReadToEnd();  //post里面的数据
            XmlDocument doc = new XmlDocument();
            try {
                doc.LoadXml(xml);
            }
            catch(XmlException)
            {
                context.Response.Write("post加载的xml数据不能为空");
                return;
            }
            XmlElement root = doc.DocumentElement;
            string datatype = root.SelectSingleNode("datatype").InnerText;
            switch (datatype)
            {
                case "1"://添加线下活动促销
                    if (AddEventPromotion(root).Equals("success"))
                    { context.Response.Write("success"); }
                    break;
                default:
                    break;
            }
            context.Response.End();  
        }

    后台返回数据全部正常,最后执行了:

    context.Response.Write("success");

    但js中缺执行了ajax的error分支,解决方法:
    将js中ajax代码的第6行: dataType: "json", 注释掉 即可

    详见datatype的说明 http://deony2jacob1314.iteye.com/blog/2017093

  • 相关阅读:
    字符串题目
    Java 练习题摘录
    数据库原理及应用-引言
    数学类题目
    牛顿法
    动态规划-最大子段和
    判断数幂
    杭电1096
    算法导论01 几种排序以及其时间复杂度01
    杭电2059龟兔赛跑
  • 原文地址:https://www.cnblogs.com/feijian/p/3663893.html
Copyright © 2011-2022 走看看