jQuery Ajax 调用 return 404 - 版本 3.5.1

jQuery Ajax Call return 404 - Version 3.5.1

ajaxCall 函数在 onChange select 事件中返回 404。我有一个应用 Spring Boot + BootStrap + Thymleaf + jQuery 3.5.1.

URL参数是内部spring引导@RequesteMapping。

错误:

jquery-3.5.1.min.js:2 GET http://10.21.18.128:8080/carregaComboAtivoCadastraCampo?uoId=06ec619f-6ed6-469a-8318-9722da71bda0 404
send @ jquery-3.5.1.min.js:2
ajax @ jquery-3.5.1.min.js:2
carregaComboAtivoAjax @ funcoes.js:3
onchange @ cadCadastraCampo:42
ListPicker._handleMouseUp

jQuery函数:

url函数参数为/carregaComboAtivoCadastraCampo?uoId=06ec619f-6ed6-469a-8318-9722da71bda0;

function carregaComboAtivoAjax(url) {
    var uoId = document.getElementById('idUo').value;
    $.ajax({
        url: url,
        dataType: 'html',
        data: { uoId: uoId },
        success: function(data) {
            if (data != null) {
                $("body").html(data);
            }
        }
    });
}

Spring 启动 - 控制器:

@RequestMapping(value = "/carregaComboAtivoCadastraCampo", method = RequestMethod.GET)
public String carregaComboAtivo(@RequestParam UUID uoId,  Model model) {
   ...
}

我自己解决了我的问题。我忘了配置媒体类型和响应体。

解决办法是在@RequestMapping 后面加上@ResponseBody 标签,使@RequestMapping 复杂化。

控制器代码:

@RequestMapping(value = "/carregaComboAtivoCadastraCampo", method = RequestMethod.GET, produces = { MediaType.TEXT_HTML_VALUE }) @ResponseBody public ModelAndView carregaComboAtivo(@RequestParam UUID uoId,模型模型){ ... }