240
世界上有10种人,一种懂二进制,另一种不懂二进制。

ajax返回json对象的两种写法

1. 前言

dataType: 要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。

  response.setContentType("text/html"); //一般默认返回的类型自己指定(有xmlDoc、jsonObj、html、text这几种)

如果返回字符串是json的字符串,希望返回的数据为json对象,可以在返回时设置

   response.setContentType("text/json");

或者

  让其返回json字符串然后再转成json对象(见http://www.cnblogs.com/fanbi/p/7289551.html)。

 

2.方法

第一种

JS代码:

$.ajax({
		type: 'POST',
		data : { 
			   mode:"getData", 
			   id:id,
			 },
		url : './data',
		dataType: 'json', //添加这一条语句	
		success: function(msg) {
		if(msg.status == "success"){
	 	    	//todo sth			
	 					
	 	    }
		}                              
	});  

Java代码:

String status = "{\"status\":\"success\"}";
	
//response.setContentType("text/json");
IOUtils.write(status.getBytes(), response.getOutputStream());
//或者
try (PrintWriter writer = response.getWriter();) {
    writer.write(status);
    writer.flush();
} catch (IOException e) {
    LOG.error(e.getMessage(), e);
}

第二种

JS代码:

$.ajax({
		type: 'POST',
		data : { 
			   mode:"getData", 
			   id:id,
			 },
		url : './data',
		success: function(msg) {
		if(msg.status == "success"){
	 	    	//todo sth			
	 					
	 	    }
		}                              
	});  

Java代码:

String status = "{\"status\":\"success\"}";
	
response.setContentType("text/json");
IOUtils.write(status.getBytes(), response.getOutputStream()); 
//或者
try (PrintWriter writer = response.getWriter();) {
    writer.write(status);
    writer.flush();
} catch (IOException e) {
    LOG.error(e.getMessage(), e);
}

 

posted @ 2017-10-21 17:38  unionline  阅读(7977)  评论(0编辑  收藏  举报