从 Ajax 中的控制器获取对象 - Spring MVC

get object from controller in ajax - spring mvc

本文关键字:取对象 Spring MVC 获取 控制器 Ajax      更新时间:2023-09-26

我想从ajax方法中的控制器获取对象,但我总是得到错误。这是我的控制器:

@RequestMapping(value = "/getUpdatableCard",method = RequestMethod.GET)
public @ResponseBody Card getUpdatableCard(@RequestParam("card") long id) {
    Card card = null;
    for(int i = 0;i<cards.size();i++) {
        if(cards.get(i).getId()==id) {
            card = cards.get(i);
        }
    }
    System.out.println(card.getExpression());
    System.out.println(card.getCardType().getName());
    System.out.println(id);
    return card;
}

这是我的 ajax 函数:

function addAttribute() {
var card = $('#card').val();
$.ajax({
    type:"GET",
    url: contexPath + "/getUpdatableCard",
    data:"card=" + card,
    success:function(data) {
        $("#cardUpdate").modal("show");
        alert(data.id);
    },
    error:function(e) {
        alert('QIRAGI')
    }
});

}

在 Web 控制台中:状态:406状态文本:不可接受

请帮助我。

406 不可接受

请求标识的资源只能生成 具有内容特征的响应实体不可接受 根据请求中发送的接受标头。

出现这种情况的原因有很多,要么你的类路径中没有正确的 Jackson 库,要么你没有使用 <mvc:annotation-driven> 指令。

也许您还缺少一些JAR文件。

春季 JSON 请求收到 406(不可接受)

控制器

@RequestMapping(value = "/getUpdatableCard/{card}",method = RequestMethod.GET)
public @ResponseBody Card getUpdatableCard(@PathVariable long card) {

    return card;  // break point. you confirm "card". 
}

.js

function addAttribute() {
    var card = $('#card').val();
    $.ajax({
        type:"GET",
        url: contexPath + "/getUpdatableCard/" + card,
        success:function(data) {
            $("#cardUpdate").modal("show");
            alert(data.id);
        },
        error:function(e) {
            alert('QIRAGI')
        }
    });
}