几种常用的ajax配合json数据格式向后台发送请求以及后台如何接收数据

一、$.ajax()(无刷新)

  • jsonp格式:以url形式传递拼接数据:http://192.168.1.1/pwc/esb?gn=tx&cz=list&id=1&shzt=5
	var param = {id:$("#cxsq_xk_id").val(),shzt:$('input[name="cxsq_sfcd"]:checked').val()}
	$.ajax({
		type: "POST", //请求方式 post
		dataType : 'jsonp', //数据类型 jsonp
        	jsonp:"jsoncallback", //回调类型 jsonp
		contentType:"application/x-www-form-urlencoded; charset=utf-8", //请求内容类型(键值对,编码格式utf-8)
		url: "/esb?gn=ts&cz=check", // 请求地址
		data: param, //请求附带参数
		timeout:20000, //请求超时时间(20秒)
		error:function(XMLHttpRequest, textStatus, errorThrown){ //请求错误捕捉
			alert("连接服务器失败,请重试!");
		}, 
		success: function(responseData){ //请求成功捕捉
			$("#modal_cxsq").modal('hide');
			InitData(cur_page);
			$("#btn_modal_ts_tj").attr("disabled", false);
		}
			
	});
后台接受数据方式:String str = request.getParameter("id");或者Object obj = request.getAttribute("id");

  • 以jsonp格式传递数据
js部分:

	var data='{"update":[{';
		data+='"id":'+id;
		data+=',"shuLiang":'+num;
		data += '}]}';
	$.ajax({
		type: "POST", //请求方式 post
		dataType : 'jsonp', //数据类型 jsonp
        	jsonp:"jsoncallback", //回调类型 jsonp
		contentType:"application/x-www-form-urlencoded; charset=utf-8", //请求内容类型(键值对,编码格式utf-8)
		url: sjzxym+"/esb?gn="+gn+"&cz="+cz, // 请求地址
		data: {rows:param}, //请求附带参数(rows)
		timeout:20000, //请求超时时间(20秒)
		error:function(XMLHttpRequest, textStatus, errorThrown){ //请求错误捕捉
			//alert("连接服务器失败,请重试!");
			btn!=null&&$(btn).attr("disabled",false); //元素是否存在,是否禁用
		}, 
		success: function(responseData){ //请求成功捕捉
			callback(responseData); //回调
			btn!=null&&$(btn).attr("disabled",false); //元素是否存在,是否禁用
		}
			
	});
后台部分:

  1. 可以使用alibaba的fastjson、google的GSON、json-lib来解析json数据;以json-lib为例,导入相关jar包(
    • json-lib-2.3-jdk15.jar
    • commons-beanutils-1.8.0.jar
    • commons-collections-3.1.jar
    • commons-lang-2.4.jar
    • commons-logging-1.1.1.jar
    • ezmorph-1.0.6.jar
  2. 接收方式:(1)接收json对象:JsonObject obj = JsonObject.fromObject(request.getParameter("rows"));(2)接收json数组:JsonArray arr = JsonArray.fromObject(request.getParameter("rows"))



二、$.getJSON(无刷新)

  • var url = "http:127.0.0.1/pwc/esb?gn="+gn+"&cz="+cz+"&jsoncallback=?";
    $.getJSON(url,param,function(data){
    	callback(data);
    });
     后台接受数据方式:String str = request.getParameter("id");或者Object obj = request.getAttribute("id");
    $.ajax主要用于增删改操作,$.getJSON则应用于查询操作;




你可能感兴趣的:(javascript,jQuery)