javascript - 如何使用ajax将js数组发送到servlet?

标签 javascript ajax servlets

我有一个文本区域,用户可以在其中输入 1 封或多封电子邮件,每封电子邮件以逗号分隔。

我的js代码:

    var emails = $("#emails").val().split(",");

    if (emails.length == 0)
    {
        window.alert("Enter an email address.");
        $("#emails").focus();
        return;
    }

    var valid = validateEmails(emails);
    var goodEmails = valid[0];
    var badEmails = valid[1];
    var json = JSON.stringify(goodEmails);

    $.ajax
    ({
        url: "/mfa/service/initiate_user",
        type: "POST",
        data: {"emails" : json},

我看到的数据:

["yao@a.com","yao@b.com]

我所希望的:

yao@a.com, yao@b.com

我在后端处理它的方式基本上是从中删除“[]”,然后从每封电子邮件中删除引号。

在没有那些愚蠢的括号和引号的情况下将电子邮件发送到后端的正确方法是什么?

最佳答案

要获取表单 yao@a.com, yao@b.com,您可以使用 Array.join(delim) 函数。

例如:

var emails = ["yao@a.com", "yao@b.com"];
var email_string = emails.join(", ");
// email_string:
// yao@a.com, yao@b.com

但是,我想说您希望将电子邮件保留为数组并执行以下操作:

var valid = validateEmails(emails);
var goodEmails = valid[0];
var badEmails = valid[1];

$.ajax
({
    url: "/mfa/service/initiate_user",
    type: "POST",
    data: {"emails" : goodEmails},
...

这将允许您解析返回的 JSON 对象。 emails 中不再有字符串,而是有一个数组。不确定您的后端,但如果您已经能够解析 JSON,这可能是一种更简单的方法。

关于javascript - 如何使用ajax将js数组发送到servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15212464/

相关文章:

php - 在 ajax 请求中使用带有 jQ​​uery 的 dataType 脚本获取响应

jquery - AJAX 调用后无法使用 DOM 元素

java - 在 REST 网络服务中使用 URL 模式 as/*?

javascript - jQuery - 不使用 stopImmediatePropagation() 切换菜单;

javascript - ChartJS 悬停工具提示颜色未显示正确的颜色

javascript - 如何解析 JQuery Ajax 中的 Web 服务 url?

java - 如何发送自定义 java 类对象作为对 java servlet 中 ajax 调用的响应并在 javascript 中检索它?

javascript - 哪种 Javascript 框架适用于数据驱动的 Web 应用程序?

Javascript 使用函数访问其他类

java - 如何配置过滤器在 servlet 处理后工作?