在做前后端数据交互的时候遇见了一些问题,记录如下:
说明:jsp是已经引入jQuery过的
前端代码如下所示:
需要注意的是,dataType所规定的数据类型不是单向规定的,而是双向规定的,也就是无论是从前端向后台传输数据,还是从后台向前端传输数据,必定都是JSON类型的数据,否则报错,然后直接转到error,略过success
<input type="button" id="inputObj" value="select"/>
<script>
$(function () {
$("#inputObj").click(function () {
$.ajax({
type:"post",
url:"wcc",
data:{"text2":"1002"},
dataType:"json",
success:function (result) {
alert("success")
alert(result.wcc);
//result:返回结果
},
error:function (msg) {
alert("error")
}
});
})
})
</script>
这里可以查看前端向后台传递的参数:
这里可以查看后台向前端传递的参数:
后端代码如下所示:
这里若要返回给Ajax数据,则返回数据必须为JSON类型,否则报错,前端直接转到error,一般来说以JSONObject封装较为方便,但是需要引入7个包(可以搜索下载)不仅要引入这7个包,而且要讲这7个JSON包拷贝到Tomcat的lib目录下才可以,否则会爆如下 java.lang.NoClassDefFoundError: net/sf/json/JSONObject或其他 6 个error
下面提供了两种封装JSON数据的方法,jsonObject对象和name对象直接返回都能成功
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
JSONObject jsonObject = new JSONObject();
jsonObject.put("wcc","back");
//String name = "{\"password\":\"123456\",\"username\":\"张三\"}";
out.print(jsonObject);//后端向前端发送
完