我有一个文本区域,用户可以在其中输入 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/