从后台将List转为JSON,传给前台并打印出来。期间遇到了很多的问题,会出现传给前端的数据全是一堆问号,下面就给出我修改后的前后端代码。
java后端
// 获取当前用户所管理的全部社团名称
@ResponseBody
@RequestMapping("/getClubNameByUserid")
public String getClubNameByUserid(String uid){
System.out.println("传入的参数"+uid);
List<String> nameList = clubService.getClubNameByUserid(uid);
String jsonStr = JSON.toJSONString(nameList);
System.out.println("jsonstr" + jsonStr);
return jsonStr;
}
前端代码:(和之前有问题的代码相比,我加了句dataType:“json”,表示服务器响应的结果类型为json字符串,接着可以直接alert(result),是可以得到预期的结果的。【在网上找了很多的例子,但具体问题具体分析,积累经验中ing】
<script type="text/javascript">
var name = "";
window.onload = function() {
var id = "${login.id}";
console.log(id);
$.ajax({
url:"${pageContext.request.contextPath}/getClubNameByUserid",
type:"POST",
async:true,
data:{"uid":id},
dataType:"json",
success:function(result){
$("#selectClub").append("<option value='0'>请选择</option>");
for(var i=0;i<result.length;i++){
$("#selectClub").append("<option>"+result[i]+"</option>");
}
},
error:function(e){
alert(e);
}
});
$("#selectClub").bind("change",function(){
name = $("#selectClub option:selected").text();
var href = $("#sendsign").text();
alert(name);
})
};
</script>