javascript - 将 $.ajax() 中的数组传递给 ajax 请求到 Controller Spring mvc

标签 javascript jquery ajax spring model-view-controller

我想将一个字符串数组以及一个字符串变量传递给 Controller ​​,但它说参数不存在。

这是我的 JavaScript

function updateIssueHandler() {
var keyArray = [];
bootstrap_alert_hide('#form_errors');// cleans previous errors
$('input:checkbox[name=key_checkbox]:checked').each(function() {
    keyArray.push($(this).val())
});
if (keyArray.length == 0) {
    var errorMsg = document
            .getElementById("js.i18nMessage.emptyUpdateTickets.id").value;
    bootstrap_alert('#form_errors', errorMsg)
}
var labels = document.getElementById('labelsTextBox').value;
var b = {
    "lab" : labels,
    "keys": keyArray
};
//console.log(addl);
console.log(keyArray);
$.ajax({
    url : '/jirabatchapp/JqlUpdate/',
    data : b,
    type : 'POST',
    success : function(data) {
        window.alert("done");
    },
    error : function(e) {
        alert(JSON.stringify(e));
    }
});
}

Controller :

@Controller
public class UpdateLabelController {

@RequestMapping(value = "/JqlUpdate", method = RequestMethod.POST)
public String updateIssue(@RequestParam(value = "lab") String a,@RequestParam(value = "keys") String k ) {

    System.out.println(a);
    System.out.println(k);
    System.out.println("finally!");
    return "success";
}
}

我收到一条错误消息,指出 HTTP 请求错误 400 所需的字符串参数实验室不存在。

我做错了什么?如果我只通过实验,那么它就可以工作,但是如果我想传递两个参数,它就会抛出这个错误。

最佳答案

改变

var b = {
    "lab" : labels
    "keys": keyArray
};

var b = {
    "lab" : labels,
    "keys": keyArray
};

关于javascript - 将 $.ajax() 中的数组传递给 ajax 请求到 Controller Spring mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39849936/

相关文章:

javascript - 如何让这个函数变小呢?

jQuery 菜单悬停

javascript - jQuery 空选择但不是第一个选项

javascript - 如何创建带有未定义参数的 JavaScript 函数?

javascript - jQuery - 单击复选框添加类和删除类

javascript - 如何将焦点设置到 tag-it 小部件?

javascript - Div 在悬停时变黑

jquery - 使用 Transfer-Encoding : Chunked 的 Ajax 请求的进度百分比

javascript - 为什么当我使用 AJAX 重新加载页面时数据消失了

javascript - 如何让按钮在某个点后改变它的步骤而不丢失值(value)?