2015-04-01 3 views
0

Я хочу сделать страницу голосования. Когда я нажимаю кнопку «», количество голосов плюс, но теперь оно встречается с «404 не найдено». (В моем проекте нет голоса. Jsp, потому что я хочу только обновить часть страницы.)Ошибка при передаче данных в ajax

vote.jsp 
<body> 
<div class="testSpan" data-id="1"><span>vote for A</span> num:<em>0</em></div> 
<div class="testSpan" data-id="2"><span>vote for B</span> num:<em>0</em></div> 
<div class="testSpan" data-id="3"><span>vote for C</span> num:<em>0</em></div> 
<div class="testSpan" data-id="4"><span>vote for D</span> num:<em>0</em></div> 
</body> 
ajax: 
    $(".testSpan").click(function(){ 
    var xsId = $(this).attr("data-id"); 
    $.post("/vote/vote2",{ 
     xsId:xsId 
    },function(data, textStatus){ 
     var xsMap = data.xsMap; 
     $(".testSpan").each(function(){ 
      var id = $(this).attr("data-id"); 
      $(this).find("em").html(xsMap[id]); 
     }); 
    }, "json"); 
}); 

Controller: 
    @RequestMapping(value="/vote/vote2") 
public net.sf.json.JSONObject vote(int xsId){ 
    net.sf.json.JSONObject json = new net.sf.json.JSONObject(); 
    userService.vote(xsId); 
    json.put("xsMap", UserServiceImpl.xsMap); 
    return json; 
} 
+0

См. Вкладку в сети на панели отладки, с которой запрашивается url. – rogeriolino

ответ

0

Вам не нужно создавать файл vote2.jsp. Также ошибка действительна, так как вы не указали путь контекста в запросе URL-адреса AJAX.

Чтобы решить эту проблему.

  1. Используйте средства разработки для браузера и размещайте URL-адрес, добавленный AJAX.
  2. URL должен содержать контекстный путь.
  3. Проверьте настройки диспетчераServlet (если вы используете Spring). Проверьте это post.
+0

Контекстный путь: «/vote".It print» POST localhost: 8080/vote/vote2 404 (Not Found) «так что« localhost: 8080/vote/vote2 »поднят. Часть параметров диспетчера настроек:« / ", и я протестировал его. – luohao

+0

Каков путь контекста вашего веб-приложения? Это также должно быть частью запроса URL. Обратите внимание, что при сопоставлении запросов вы уже упоминаете '/ vote/vote2.jsp'. Таким образом, URL-адрес для ajax должен быть '/ vote/vote/vote2, jsp' (при условии, что ваш контекстный путь равен'/vote') – CuriousMind

+0

Наконец, я добавляю «@responsebody» перед голосованием, а затем он помогает – luohao

Смежные вопросы