Javascript 无法对服务器进行ajax调用
我曾尝试在SpringMVC应用程序中使用ajax,但它似乎不起作用。我搜索了它,找到了许多资源,但由于我不是专业人士,我无法理解其中的任何内容,最后我找到了作为grace并在Controller中尝试了作为Javascript 无法对服务器进行ajax调用,javascript,jquery,ajax,spring,Javascript,Jquery,Ajax,Spring,我曾尝试在SpringMVC应用程序中使用ajax,但它似乎不起作用。我搜索了它,找到了许多资源,但由于我不是专业人士,我无法理解其中的任何内容,最后我找到了作为grace并在Controller中尝试了作为 @RequestMapping(value = "/getBars", method = RequestMethod.POST, produces = "application/json") public @ResponseBody List<Bar> getBars
@RequestMapping(value = "/getBars", method = RequestMethod.POST, produces = "application/json")
public @ResponseBody List<Bar> getBars(@RequestParam String bar, HttpServletResponse response) {
return barService.findBarByName(bar);
}
最后,我的view.jsp是
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<meta content="initial-scale=1.0, width=device-width" name="viewport">
<title>Ask Question</title>
<script src="https://code.jquery.com/jquery-1.11.3.min.js"/></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"> </script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
<script type="text/javascript" src="/app/resources/js/autoComplete.js"></script>
<script>
if (window.jQuery) {
alert('jQuery is loaded');
} else {
alert('jQuery is not loaded');
}
</script>
<!-- css -->
<link href="/app/resources/css/base.css" rel="stylesheet">
<!-- favicon -->
<!-- ... -->
<!-- ie -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="form-group form-group-label">
<div class="row">
<div class="col-md-10 col-md-push-1">
<label class="floating-label" for="login-username">Bars</label>
<input id="bar-search" name="bars" class="form-control" type="text" value=""/>
</div>
</div>
</div>
<script src="/crazy/resources/js/base.min.js;jsessionid=4891173C4BB89D06603ACA4FF7D64D20" type="text/javascript"></script>
<script src="/crazy/resources/js/webfont.js;jsessionid=4891173C4BB89D06603ACA4FF7D64D20" type="text/javascript"></script>
<script src="/crazy/resources/js/jquery.autocomplete.min.js;jsessionid=4891173C4BB89D06603ACA4FF7D64D20" type="text/javascript"></script>
</body>
</html>
提问
if(window.jQuery){
警报(“jQuery已加载”);
}否则{
警报(“jQuery未加载”);
}
酒吧
当应用程序启动时,一切都正常,但当我在输入中写下一些文本时,我得到了错误
谁能帮我解决这个错误,或者告诉我哪里错了。
对不起,如果我的英语不正确。好的。。。首先,您的服务配置错误 您的服务需要@RequestParam,但在ajax中,您发送的是json对象,这意味着您应该接受@RequestBody 此外,如果您正在查找@RequestParam,则需要将该值作为url的一部分传递,如
$.ajax({
url: "/app/getBars?bar=" + request.term,
type: "GET"
( ... )
});
@RequestMapping(value = "/getBars", method = RequestMethod.GET, produces = "application/json")
public @ResponseBody List<Bar> getBars(@RequestParam(value = "bar", defaultValue = "abc", required = false) String bar, HttpServletResponse response) {
return barService.findBarByName(bar);
}
然后像这样写你的服务
@RequestMapping(value = "/getBars", method = RequestMethod.POST, produces = "application/json")
public @ResponseBody List<Bar> getBars(@RequestBody MyRequestBean bean, HttpServletResponse response) {
return barService.findBarByName(bean.getBar());
}
$.ajax({
url: "/app/getBars/,
type: "POST",
data: JSON.stringify({bar : request.term})
( ... )
});
@RequestMapping(value=“/getbar”,method=RequestMethod.POST,products=“application/json”)
public@ResponseBody列表getbar(@RequestBody MyRequestBean bean,HttpServletResponse){
返回barService.findBarByName(bean.getBar());
}
$.ajax({
url:“/app/getbar/,
类型:“POST”,
数据:JSON.stringify({bar:request.term})
( ... )
});
注意:不要使用动词来定义您的服务
例如,/getBars可以更改为仅/bars,并让HTTP协议(GET、POST、PUT或DELETE等)描述您试图执行的操作。服务器对POST请求的响应是什么?我猜它没有使用有效的JSON进行响应…我如何检查服务器响应!@KenFranqueiro请查看我的UpdateEyes,您的服务器肯定没有使用有效的JSON进行响应。要查看响应,请打开浏览器的开发工具eloper tools,转到网络选项卡,在其中找到对
/app/getbar
的请求。或者,出于测试目的,暂时将数据类型更改为文本
,并记录在成功
回调中得到的值。$(document).ready(function(){};
和$(function(){});
都是一样的东西,为什么一个在另一个里面..同样的问题意外的令牌<!!如果是get请求,在浏览器中键入url,看看响应是什么,你是否有spring安全性?我没有spring安全性请看一下,它也有与此相同的问题。
$.ajax({
url: "/app/getBars/" + request.term,
type: "GET"
( ... )
});
@RequestMapping(value = "/getBars/{bar}", method = RequestMethod.GET, produces = "application/json")
public @ResponseBody List<Bar> getBars(@PathVariable String bar, HttpServletResponse response) {
return barService.findBarByName(bar);
}
public class MyRequestBean implements Serializable{
private static final long serialVersionUID = 1L;
private String bar;
public void setBar(String bar){
this.bar = bar;
}
public void getBar(){
return this.bar;
}
}
@RequestMapping(value = "/getBars", method = RequestMethod.POST, produces = "application/json")
public @ResponseBody List<Bar> getBars(@RequestBody MyRequestBean bean, HttpServletResponse response) {
return barService.findBarByName(bean.getBar());
}
$.ajax({
url: "/app/getBars/,
type: "POST",
data: JSON.stringify({bar : request.term})
( ... )
});