Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法对服务器进行ajax调用_Javascript_Jquery_Ajax_Spring - Fatal编程技术网

Javascript 无法对服务器进行ajax调用

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

我曾尝试在SpringMVC应用程序中使用ajax,但它似乎不起作用。我搜索了它,找到了许多资源,但由于我不是专业人士,我无法理解其中的任何内容,最后我找到了作为grace并在Controller中尝试了作为

@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})
    ( ... )
});