Javascript 无法通过AJAX调用控制器

Javascript 无法通过AJAX调用控制器,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我有一个带有2个下拉列表的jsp页面。第二个下拉列表应该基于从第一个下拉列表中选择的值进行填充。为此,我使用AJAX在选择第一个下拉列表时调用控制器方法,将第二个下拉列表的值作为json返回。单击“提交”后,整个表单将提交给控制器方法。但是在选择第一个下拉列表时,我没有收到任何关于控制器方法的请求 Jsp文件 警报(“正常”); (“#selectCategory”).onChange(函数(){ var categoryId=$(this.val(); 警报(类别ID); $.ajax({ 键

我有一个带有2个下拉列表的jsp页面。第二个下拉列表应该基于从第一个下拉列表中选择的值进行填充。为此,我使用AJAX在选择第一个下拉列表时调用控制器方法,将第二个下拉列表的值作为json返回。单击“提交”后,整个表单将提交给控制器方法。但是在选择第一个下拉列表时,我没有收到任何关于控制器方法的请求

Jsp文件

警报(“正常”);
(“#selectCategory”).onChange(函数(){
var categoryId=$(this.val();
警报(类别ID);
$.ajax({
键入:“GET”,
url:“/categories/”+categoryId,
成功:功能(数据){
var slctSubcat=$(“#selectSubcat”),
选项=”;
slctSubcat.empty();
对于(变量i=0;i

中音
尊重

控制器方法

@GetMapping("/categories/{categoryId}")
    @ResponseBody
    public List<String> get(@PathVariable("categoryId") String categoryId)
    {
    System.out.println("inside controller get  "+categoryId);
        ArrayList<String> l= new ArrayList<String>();
        if(categoryId.equals("Alto"))
        {
            l.add("Alto Model 1");
            l.add("Alto Model 2");
            return l;
        }
        else if(categoryId.equals("Esteem"))
        {
            l.add("Esteem Model 1");
            l.add("Esteem Model 2");
            return l;
        }
        return null;
    }
@GetMapping(“/categories/{categoryId}”)
@应答器
公共列表获取(@PathVariable(“categoryId”)字符串categoryId)
{
System.out.println(“内部控制器获取”+类别ID);
ArrayList l=新的ArrayList();
如果(类别等于(“Alto”))
{
l、 添加(“Alto车型1”);
l、 添加(“Alto车型2”);
返回l;
}
else if(类别等同(“尊重”))
{
l、 添加(“模型1”);
l、 添加(“尊重模式2”);
返回l;
}
返回null;
}
如果我对该控制器方法进行单独的rest调用,则得到的响应为json[ “尊重模式1”, “尊重模式2”
],但通过ajax,请求不会发出。我是ajax新手。如果下面的ajax代码错误,请有人纠正我好吗?

您是否收到此警报值的警报(categoryId)?
(“#selectCategory”)
问题中的键入错误?缺少
$
->
$(“#selectCategory”)
-如上所述,您是否收到第一个警报?检查浏览器的“网络”选项卡-它是否试图在任何地方发送任何请求?这也会告诉你它发送了什么与你的手动发送进行比较。不,我没有收到警报警报(categoryId)。我只收到警报(“确定”)。在浏览器控制台中,我也收到了错误-登录:16未捕获类型错误:“#selectCategory”。onChange不是function@freedomn-m、 是的,我错过了jquery include。我对jquery和Ajax还不熟悉。在包括和jquery并做了一些更改之后,现在工作正常。在选择第一个下拉列表后,我在控制器上收到请求,第二个下拉列表中填充了从控制器发送的tha值。感谢您的帮助。