老师帮忙看一下,为什么后台返回的数据为空
来源:2-8 自由编程
巴呆丶
2019-04-07 15:42:25
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
#all {
width: 600px;
height: 50px;
background-color: #D0D0D0;
margin: auto;
}
.b {
width: 196px;
height: 50px;
margin: auto;
background-color: #F0F0F0;
font-size: 15px;
}
#list {
width: 600px;
height: 600px;
text-align: center;
font-size: 20px;
background-color: #F0F0F0;
margin: auto;
}
</style>
</head>
<body>
<div id="all">
<button class="b" id="emp" >员工列表</button>
<button class="b" id="depart" >部门列表</button>
<button class="b" id="postion" >职位列表</button>
</div>
<div id="list"></div>
<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function() {
var num;
$("button[id='emp']").click(function() {
num = "1";
});
$("button[id='postion']").click(function() {
num = "2";
});
$("button[id='depart']").click(function() {
num = "3";
});
$.ajax({
type : "get",
url : "/ajax/company",
data : "temp=num",
dataType : "json",
success : function(json) {
console.log(json);
for(var i = 0;i < json.length;i++) {
$("div[id='list']").append("<h3>" + json[i] + "</br></h3>");
}
}
});
});
</script>
</body>
</html>
package com.imooc.ajax;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
/**
* Servlet implementation class CompanyServlet
*/
@WebServlet("/company")
public class CompanyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String temp = request.getParameter("temp");
List<String> list = new ArrayList<String>();
if (temp.equals("1")) {
list.add("小红");
list.add("小明");
list.add("小白");
}else if(temp.equals("2")) {
list.add("职员");
list.add("经理");
}else if (temp.equals("3")) {
list.add("人事部");
list.add("技术部");
list.add("无线事业部");
}
String json = JSON.toJSONString(list);
response.setContentType("text/html;charset=utf-8");
response.getWriter().println(json);
}
}1回答
同学你好。这是因为获取到的temp拿到的是“num”而不是num代表的数值:

data可以修改成"temp="+num这种形式拼接。
此外直接写在$(function(){ });中的代码都是刷新页面直接加载的。所以目前同学的代码逻辑是num直接定义完,还没来得及点击按钮触发给num赋值,就被ajax函数传入后台,所以只是修改data的拼接方式,获取到的只是undefined。
老师将同学的代码做了调整,同学可以再试一下看看:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
#all {
width: 600px;
height: 50px;
background-color: #D0D0D0;
margin: auto;
}
.b {
width: 196px;
height: 50px;
margin: auto;
background-color: #F0F0F0;
font-size: 15px;
}
#list {
width: 600px;
height: 600px;
text-align: center;
font-size: 20px;
background-color: #F0F0F0;
margin: auto;
}
</style>
</head>
<body>
<div id="all">
<button class="b" id="emp">员工列表</button>
<button class="b" id="depart">部门列表</button>
<button class="b" id="postion">职位列表</button>
</div>
<div id="list"></div>
<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
var num;
$("button[id='emp']").click(function() {
num = "1";
show();
});
$("button[id='postion']").click(function() {
num = "2";
show();
});
$("button[id='depart']").click(function() {
num = "3";
show();
});
function show(){$(function() {
$.ajax({
type : "get",
url : "/ajax/company",
data : "temp="+num,
dataType : "json",
success : function(json) {
console.log(json);
for (var i = 0; i < json.length; i++) {
$("div[id='list']").append(
"<h3>" + json[i] + "</br></h3>");
}
}
});
});
}
</script>
</body>
</html>如果还有疑问,可以继续提问。如果解答了同学的疑问,望采纳~
祝学习愉快~
相似问题