你的dataType:html,的话是无法接收后台传的json串的。
由于你后台return "wanglongtest.html",所以前台ajax接收是一个
html对象,则前台可以按如下代码处理:
success: function(rs){
$("#testDiv").html(rs)
}
html:
<!-- ajax 要填充的内容 -->
<div id="testDiv">
</div>
------------------------------------
如果你想接收后台的类型为json,那么后台servlet方法中只需要return null
完整代码见如下:
response.setHeader("pragma", "no-cache")
response.setHeader("cache-control", "no-cache")
//设置响应格式和字符集(与前端页面一致,否则会有乱码问题)
response.setContentType("text/htmlcharset=GBK")
PrintWriter out = response.getWriter()
Map model = new HashMap()
model.put("zhangsan",true)
JSONObject json = new JSONObject(model)//将一个map对象实例化成一个json对象
out.write(json.toString())
out.flush()
out.close()
return null
前台js:
$.ajax({
type: "POST",
url: "请求地址",
dataType: "json", //指定请求的数据类型
data:"type=1", //传到后台的参数,后台可以通过request.getParameter("type")获取
success:function(rs){
alert(rs.zhangsan) //我这里以d出框的方式显示zhangsan对应的value
//也可以为html中的标签赋值
$("#testAjax").val(rs.zhangsan)
}
},"json")
})
html:
<input id="testAjax" type="text" value="" />
其实楼上的同学们已经大概说清了如何处理,我这里只是帮你进一步理清dataType:html和dataType:json的具体处理方式,如有疑问可留言。
url 填/后台接收代码如下,提交后,会在页面显示出来JavaScript code
var http = require('http')
var querystring = require('querystring')
var util = require('util')
http.createServer(function(req, res){
var post = ''//定义了一个post变量,用于暂存请求体的信息
req.on('data', function(chunk){//通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中
post += chunk
})
req.on('end', function(){//在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。
post = querystring.parse(post)
res.end(util.inspect(post))
})
}).listen(3000)
$.ajax({url:'',
type:'',
data:'',
dataType:'json',
success:function(result){
// .....
}
})
这个result就是传过来的json数据,然后按照对象的格式obj.attr取里面的值
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)