AJax请求

来源:互联网 发布:php判断是否微信浏览器 编辑:程序博客网 时间:2024/05/17 22:50

Ajax请求

例子1:

function toQuesion(id){

                   var ids = id;

                   var urlVal="/servlet/ExportWebpart?function=default";//访问后台的相关代码类

        $.ajax({

                url:urlVal,//请求路径

                type:"post",//请求方式

              cache: false,//浏览器缓存

                dataType:'json',//返回值类型

                data:{'expId':ids},//传递到后台的参数值

       success:function(json,textStatus){

         if(json != null ){

              //json.data.error 表示后台自己定义的一个返回值类型

              if(json.data.error=="1"){

               $("#zjzx").hide();

               $("#expert_online").show();

                   varlist = json.listexpers;//获取所有的专家列表

                   varcurrentExpert = json.datas;//当前选中的专家

               var currentExpId = currentExpert.expid;//当前专家的Id编号

               var html = "";//option的值

                            //for (var p in json) { //等价于 for循环吗?网上搜索到...

                             for(vari = 0 ;i<list.length;i++){

                                                        varexpert = list[i];

                                                        varexpertId = expert.expid;//专家编码

                                                        varexpertName = expert.name;//专家姓名

                                                        if(currentExpId== expertId){

                                                                      html  ="<option value='" + expertId +"' selected='selected' >" +expertName +"</option>";

                                                        }else{

                                                                      html="<option value='" + expertId + "'>" +expertName +"</option>";

                                                        }

                                                        $("#chooseExper").append(html);

                                           }

                                           showServerMsg("发送成功!");//JS中封装的一个弹出层吧

                                          }

                            }else{

                                           showServerMsg("留言信息提交失败!");

                            }

      },

     error:function(){

              showServerMsg("【系统信息】 请求失败,请重试!");

      }

    });

 

 

 

例子2:  

这个例子主要讲的还是异步请求 同时包含对重要数据加码

functionsubmitBtn(){

     var expId =$("#chooseExper").val();//专家编号

     //expId = encodeURI(encodeURI(expId));

     var expContent =$("#expContent").val();//提问内容

     //expContent = encodeURI(encodeURI(expContent));//encodeURI即为加码函数

     var yzm = $("#yzm").val();//验证码

     //yzm = encodeURI(encodeURI(yzm));

     if(expContent==''){

            alert("请输入内容,内容不能为空!");

            $("#expContent").focus();

            return;

     }

     if(yzm==''){

     //alert("请输入验证码,验证码不能为空!");

     alert("验证码不能为空!",null,{title:"提示信息",afterHide:function(){$("#yzm").focus();}});

     $("#yzm").focus();

     return;

     }

     //异步发出请求

     $.ajax({

              type:"post",//请求方式

              url:"/servlet/ExportWebpart?function=AddExpQuestion",//请求路径

              data:{

              "expertId":expId,

              "expContent":encodeURI(expContent),//对字符串需加码,在后台进行解码

              "yzm":yzm

              },//传递到后台的参数值

              dataType:'json',//返回的数据格式

              success:function (json) {

              vardatainfo = json.data;//获取后台的数据


                   var error_no =datainfo.error;//错误编号  0 表示成功 -1 表示验证码有误

                   if(error_no =='-1'){

                       //window.top.verifycodeiframe2.location.reload();

                       showImage();//调用刷新图片事件

                       $("#yzm").focus();

                       alert(datainfo.msg);

                   }else if(error_no=='1'){

                       alert(datainfo.msg);

                       location.href="";

                   }else if(error_no=='0'){

                        alert("我们已经收到你的问题,将尽快审核以及回复!");

                        location.href="/main/khfw/zjzx/index.shtml";

                   }

              }

         });

}

 

 

3、后台得到Ajax请求需要处理的代码类:

public ActionResult doAddExpQuestion(){
String expId = this.getStrParameter("expertId");//专家Id
String twQuesion = this.getStrParameter("expContent");//提问内容
String yzm = this.getStrParameter("yzm");//验证码内容
String zqyzm = SessionHelper.getString(Constants.TICKET, getSession());// 获取验证码
try {
JSONObject json = new JSONObject();//用于向前台返回数据格式
DataRow data = new DataRow();//用于保存数据 返回到前台
//校验非空
if(StringHelper.isNotBlank(expId)){
expId = java.net.URLDecoder.decode(expId, "UTF-8"); //解码
}
if(StringHelper.isNotBlank(twQuesion)){
twQuesion = java.net.URLDecoder.decode(twQuesion,"UTF-8");
}
//如果验证码正确
if(yzm.equalsIgnoreCase(zqyzm)){
//调用Services层的新增方法  此处的返回格式为 DataRow
DataRow datas = questionService.addQuersion(expId, twQuesion);
//根据后台返回是否新增成功来判断是否执行下一步
if(datas.getString("error") != "1"){
data.set("error", "1");
data.set("msg","数据库请求失败!!!");
json.put("data", data);//此处json中保存的即是  error 和 msg

//对专家提问内容监听
StateMap.put("exp_content", "xx向专家提问请求失败...");
}else{
//新增成功!
data.set("error", "0");
json.put("data", data);
//对专家提问内容监听
StateMap.put("exp_content", "xx在"+new Date()+"专家提问,请相应的专家登录系统审核并进行回复...");
}
}else{
//验证码有误
data.set("error", "-1");
data.set("msg", "验证码有误...");
json.put("data", data);
//对专家提问内容监听
StateMap.put("exp_content", "xx在向专家提问过程中,输入的验证码有误...");
}
//将相应json数据保存 打印在前台
PrintWriter printer = null;
printer = getResponse().getWriter();
printer.write(json.toString());
printer.flush();
printer.close();
printer = null;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

    

1 0
原创粉丝点击