纠结点

 问题: 使用jQuery提交内容到后台处理,然后得到返回的JSON数据,根据返回值的不同,前台进行不同处理。

1 最初版:最初采用jQuery.getJSON的方式,本质是GET提交,遇到提交内容很长的时候,Get拼接的QueryString超长,导致长内容无法提交成功。

View Code
function Checksubmit() {
    if (isrepeater == 0) {
        CheckGetType();
        CheckStar1();
        CheckStar2();
        CheckStar3();
        checkhousedescription();
        if (booltype && booldes && boolstar1 && boolstar2 && boolstar3) {
            isrepeater = 1;
            var interface = GetUrl(jQuery("#AgentCity").val(), jQuery("#IsNorth").val());
            var url = interface + "?jsoncallback=?&ServiceWay=" + jQuery("#ServiceWay").val() + "&HouseInfoAccuracy=" + jQuery("#HouseInfoAccuracy").val()
                + "&ServiceAttitude=" + jQuery("#ServiceAttitude").val() + "&Professional=" + jQuery("#Professional").val()
                + "&EntranceContent=" + escape(jQuery("#EntranceContent").val()) + "&EvaluationUserID=" + jQuery("#EvaluationUserID").val() 
                + "&EvaluationUserName=" + escape(jQuery("#EvaluationUserName").val())
                + "&EvaluationName=" + escape(jQuery("#EvaluationName").val()) + "&EvaluationMobile=" + jQuery("#EvaluationMobile").val()
                + "&EvaluationIP=" + jQuery("#EvaluationIP").val() + "&EvaluationEntrance=" + jQuery("#EvaluationEntrance").val()
                + "&AgentID=" + jQuery("#AgentID").val() + "&AgentName=" + escape(jQuery("#AgentName").val())
                + "&AgentCompanyName=" + escape(jQuery("#AgentCompanyName").val()) + "&AgentCity=" + escape(jQuery("#AgentCity").val())
                + "&AgentMobile=" + jQuery("#AgentTel").val() + "&HouseID=" + jQuery("#HouseID").val() + "&purpose=" + escape(jQuery("#purpose").val())
                + "&HouseType=" + jQuery("#HouseType").val() + "&usertype=" + jQuery("#UserType").val()
                + "&ee=" + jQuery("#ee").val() + "&ef=" + jQuery("#ef").val() + "&et=" + jQuery("#et").val() + "&eu=" + jQuery("#eu").val()
                + "&zc=" + jQuery("#zc").val() + "&zd=" + jQuery("#zd").val() + "&zr=" + jQuery("#zr").val() + "&zs=" + jQuery("#zs").val();

            jQuery.getJSON(url, function (data) {
                if (data.Resposn == 100)
                { jErpPopup("网友评价", '/agent/help/pingjiayes.aspx?source=0&jjrmanagername=' + jQuery("#jjrmanagername").val(), 415, 90, function () { }); }
                else if (data.Resposn == 003)
                { isrepeater = 0, alert("提交的数据中含有非法信息!"); }
                else
                { isrepeater = 0, alert("很抱歉,系统异常,评价失败!"); }
            });
        }
        else {
            return false;
        }
    }
    else {
        return;
    }
}

2 后改进采用JQuery.post方式提交,IE下ok,FF下post之后,返回空,导致直接跳出js。然后就开始纠结。

View Code
var isrepeater = 0;
function Checksubmit() {
    if (isrepeater == 0) {
        CheckGetType();
        CheckStar1();
        CheckStar2();
        CheckStar3();
        checkhousedescription();
        if (booltype && booldes && boolstar1 && boolstar2 && boolstar3) {
            isrepeater = 1;
            var interface = GetUrl(jQuery("#AgentCity").val(), jQuery("#IsNorth").val());
            var parastr = { "ServiceWay": jQuery("#ServiceWay").val(), "HouseInfoAccuracy": jQuery("#HouseInfoAccuracy").val(), "ServiceAttitude": jQuery("#ServiceAttitude").val(),
                "Professional": jQuery("#Professional").val(), "EntranceContent": escape(jQuery("#EntranceContent").val()), "EvaluationUserID": jQuery("#EvaluationUserID").val(),
                "EvaluationUserName": escape(jQuery("#EvaluationUserName").val()),"EvaluationName": escape(jQuery("#EvaluationName").val()),
                "EvaluationMobile": jQuery("#EvaluationMobile").val(), "EvaluationIP": jQuery("#EvaluationIP").val(), "EvaluationEntrance": jQuery("#EvaluationEntrance").val(),
               "AgentID": jQuery("#AgentID").val(), "AgentName": escape(jQuery("#AgentName").val()), "AgentCompanyName": escape(jQuery("#AgentCompanyName").val()),
                "AgentCity": escape(jQuery("#AgentCity").val()), "AgentMobile": jQuery("#AgentTel").val(), "HouseID": jQuery("#HouseID").val(),
                "purpose": escape(jQuery("#purpose").val()), "HouseType": jQuery("#HouseType").val(), "usertype": jQuery("#UserType").val(),
                "ee": jQuery("#ee").val(), "ef": jQuery("#ef").val(), "et": jQuery("#et").val(), "eu": jQuery("#eu").val(),
                "zc": jQuery("#zc").val(), "zd": jQuery("#zd").val(), "zr": jQuery("#zr").val(), "zs": jQuery("#zs").val(),"r":Math.random()
            };

            jQuery.post(interface, parastr, function (data) {
                data = eval(data);
                if (data.Resposn == 100) {
                    window.document.popups['jjrpjdiv'].close(); jQuery('#jjrpjdiv').html('');
                    jErpPopup("网友评价", '/agent/help/pingjiayes.aspx?source=1&jjrmanagername=' + jQuery("#jjrmanagername").val(), 415, 90, function () { });
                }
                else if (data.Resposn == 003)
                { isrepeater = 0, alert("提交的数据中含有非法信息!"); }
                else
                { isrepeater = 0, alert("很抱歉,系统异常,评价失败!"); }
            });
        }
        else {
            return false;
        }
    }
    else {
        return;
    }
}

function CheckAllInfoforagent() {
    if (isrepeater == 0) {
        CheckGetType();
        CheckStar1();
        CheckStar2();
        CheckStar3();
        checkhousedescription();
        if (booltype && booldes && boolstar1 && boolstar2 && boolstar3) {
            isrepeater = 1;
            var interface = GetUrl(jQuery("#AgentCity").val(), jQuery("#IsNorth").val());
              var parastr = "?jsoncallback=?&ServiceWay=" + jQuery("#ServiceWay").val() + "&HouseInfoAccuracy=" + jQuery("#HouseInfoAccuracy").val()
                + "&ServiceAttitude=" + jQuery("#ServiceAttitude").val() + "&Professional=" + jQuery("#Professional").val()
                + "&EntranceContent=" + escape(jQuery("#EntranceContent").val()) + "&EvaluationUserID=" + jQuery("#EvaluationUserID").val()
                + "&EvaluationUserName=" + escape(jQuery("#EvaluationUserName").val())
                + "&EvaluationName=" + escape(jQuery("#EvaluationName").val()) + "&EvaluationMobile=" + jQuery("#EvaluationMobile").val()
                + "&EvaluationIP=" + jQuery("#EvaluationIP").val() + "&EvaluationEntrance=" + jQuery("#EvaluationEntrance").val()
                + "&AgentID=" + jQuery("#AgentID").val() + "&AgentName=" + escape(jQuery("#AgentName").val())
                + "&AgentCompanyName=" + escape(jQuery("#AgentCompanyName").val()) + "&AgentCity=" + escape(jQuery("#AgentCity").val())
                + "&AgentMobile=" + jQuery("#AgentTel").val() + "&HouseID=" + jQuery("#HouseID").val() + "&purpose=" + escape(jQuery("#purpose").val())
                + "&HouseType=" + jQuery("#HouseType").val() + "&usertype=" + jQuery("#UserType").val()+"&ee="+jQuery("#ee").val()
                +"&ef="+ jQuery("#ef").val()+"&et="+jQuery("#et").val()+"&eu="+jQuery("#eu").val()
                +"&zc="+jQuery("#zc").val()+"&zd="+jQuery("#zd").val()+"&zr="+ jQuery("#zr").val()+"&zs="+jQuery("#zs").val()+"&r="+Math.random();

              jQuery.ajax({
                  type: "POST",
                  url: interface,
                  data: parastr,
                  cache: false,
                  dataType: "JSON",
                  success: function (msg) {
                      msg = eval(msg);
                      alert(msg.Resposn);
                      if (msg.Resposn == 100)
                      { jErpPopup("网友评价", '/agent/help/pingjiayes.aspx?source=0&jjrmanagername=' + jQuery("#jjrmanagername").val(), 415, 90, function () { }); }
                      else if (msg.Resposn == 003)
                      { isrepeater = 0, alert("提交的数据中含有非法信息!"); }
                      else
                      { isrepeater = 0, alert("很抱歉,系统异常,评价失败!"); }
                  },
                  error: function (e) { alert(e); }
              })
           
        }
        else {
            return false;
        }
    }
    else {
        return;
    }
原文地址:https://www.cnblogs.com/judy0605/p/2815768.html