作者lueichun (= =)
看板java
标题[问题] 明明有进入程式里的方法,页面却跳出404
时间Mon Jul 27 22:10:38 2020
※状况概述:
就是我透过spring和JQuery ajax,写了一个简单的动态下拉式选单的程式,
我在浏览器上输入url,在debugger模式下可以看到执行绪停留在中断点的位置,
但是浏览器却显示404,而我在程式里捞的资料也没有回到前端,也就是
前端的回呼函数没有接到捞出来的资料。
※程式码:
前端:
$(document).ready(function(){
$("
#dropdown1").change(function() {
//alert("ajax");
$.ajax({
type :"GET",
url :
"/TestSpringJQueryAjax1/goToTestController.do?method=queryCountry",
data : {
continentId : $("#dropdown1").val(),
},
dataType: "json",
mmsuccess : function(data) {
//alert(data.list[0].countryId);
//var i = 0;
$("
#dropdown2 option").remove();
data.list.forEach(function(value,index){
$("
#dropdown2").append(new Option(data.list[index].countryName,
data.list[index].countryId));
//i++;
});
},
error:function(data){
alert(data);//进入这里,并显示404
}
})
})
});
後端:
@ResponseBody
public String queryCountry(HttpServletRequest request, HttpServletResponse
response) {
String continentId = request.getParameter("continentId");
List<Country> list = testDao.queryCountry(continentId);
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("list", list);
Gson gson = new Gson();
String result = gson.toJson(resultMap);
return result;
}
※错误讯息:
後端没跳任何错误讯息,只有前端显示:
http://localhost:8080/TestSpringJQueryAjax1/goToTestController.do
?method=queryCountry&continentId=2 404 (Not Found)
-------------------------------------
所以现在卡在为何明明有进入到程式里面,却仍然跳404错误,
而且既然有加上
@ResponseBody这个注释,但後端捞出来的资料
却没有写进HttpResponse里面,所以回到前端,回呼函数没接收到捞出来的资料。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.162.208.115 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1595859040.A.78A.html
1F:→ pttworld: 有@GetMapping吗 07/28 06:38
2F:→ bitlife: 测get method时先不透过ajax,直接用浏览器网址列输入完整 07/28 11:10
3F:→ bitlife: request url,然後看输出.後端那里(用断点後印到console检 07/28 11:11
4F:→ bitlife: 视result的内容,这算基本unit test 07/28 11:11
5F:→ bitlife: 或 07/28 11:11
6F:→ swallowcc: 砍掉,然後写相同的东西就能跑了? 07/28 16:32
7F:→ l5125: 漏了@Controller跟@GetMapping吗?直接在网页输入访问的地址 07/28 18:24
8F:→ l5125: 应该会直接在网页上输出JSON的字串 07/28 18:25
原本的写法是传统的用注册档注册物件,所以没有加上@Controller
後来的写法改成用注释取代注册档,用了@Controller @RequestMapping @Repository
这些注释。另外一些不能用注释注册的物件,比方说sessionfactory才用到注册档。
反而上面的code,除了ajax的url改成xxx.do之外,其他的我都没有修改到。
9F:→ tw11509: 如果是用xml设定,请一起提供给大家看,要不然我们很难 07/28 22:04
10F:→ tw11509: 定位问题 07/28 22:04
11F:→ tw11509: 如果有用Java Configuration,也提供相关source code 07/28 22:06
感谢楼上意见,已经可以了,谢谢。
※ 编辑: lueichun (1.167.52.218 台湾), 07/29/2020 09:01:25