课题打卡,请老师检查

课题打卡,请老师检查

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
<style type="text/css">
    div{
        text-align: center;
        
    }
    
</style>
</head>
<body>

    <div>
        <input type="button" value="流行歌曲" id="pop">
        <input type="button" value="经典歌曲" id="classic">
        <input type="button" value="摇滚歌曲" id="rock">
    </div>
    <div id="container"></div>
    
    <script type="text/javascript" src="js/jquery-3.5.1.js"></script>
    <script type="text/javascript">
        $("input[type='button']").click(function(){
        	var id = $(this).attr("id");

        	$.ajax({
        		"url":"/ajax/music",
        		 "type":"post",
        		 "data":{"t":id},
        		 "dataType":"json",
        		 "success": function(json){
        			  console.log(json.length);
        			  for ( var i = 0; i<json.length; i++){
        				  var html;
        				  if(html == null){
        					  html = "<h2>" + json[i] +"</h2>";
        				  }else{
        					  html = html + "<h2>" + json[i] +"</h2>";
        				  }
        			  }
        			 $("#container").html(html);
        		 },	
        	});

        });

    </script>
</body>
</html>



package ajax;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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 Musci
 */
@WebServlet("/music")
public class Musci extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Musci() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	  request.setCharacterEncoding("UTF-8");
	  response.setContentType("text/html;charset=utf-8");
	  String type = request.getParameter("t");
	  Map<String, List> map = new HashMap<String, List>();
	  List<String> list = new ArrayList<String>();
	  list.add("稻香");list.add("晴天");list.add("告白气球");
	  map.put("pop", list);
	  List<String> list2 = new ArrayList<String>();
	  list2.add("千千阙歌");list2.add("傻女");list2.add("七友");
	  map.put("classic",list2);
      List<String> list3 = new ArrayList<String>();
	  list3.add("一块红布");list3.add("假行僧");list3.add("新长征路上的摇滚");
	  map.put("rock",list3);
	  List<String> text = new ArrayList<String>();
	  
	  if(map.containsKey(type)) {
	    text = map.get(type);
	  }else {
	    text = list;
	  }
	  String text2 = JSON.toJSONString(text);
	  
	  System.out.println(text2);
	  response.getWriter().println(text2);
	  
	  
	}

}

老师这里有个问题我碰到的没有解决,在music class里面,如果我最后不把 text2转化为json, 而是直接把text发回去,javascript里面 


         "dataType":"json",

           "success": function(json){

            console.log(json) 就打印不出任何值出来,但是在response里面能看到值。 问下这个是什么原因呢?

})


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1. 已完成练习,棒棒哒!继续加油!
2. 在js中"dataType":"json",是指返回的数据类型是Json类型的。所以当不将text2转化为json格式时,在前台无法接收到数据。但数据是真实存在的,所以可以在response中查看到。

3. 同学可尝试将返回类型修改为text类型,就可以在前台接收到不转换的数据了。如下所示:

http://img1.sycdn.imooc.com//climg/5f1152f609dfa85306730259.jpg

http://img1.sycdn.imooc.com//climg/5f115301094c01d604620225.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师