2013-03-04 3 views
0

У меня есть текстовое поле, где пользователь может ввести 1 или более сообщений электронной почты, причем каждое электронное письмо разделяется запятой.Как отправить массив js в сервлет с помощью ajax?

Мой расслоение плотной код:

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}, 

Данные, которые я вижу:

["[email protected]","[email protected]] 

То, что я надеялся:

[email protected], [email protected] 

так, как я бы справиться с этим в Бэкэнд в основном, вычеркивая «[]», затем удаляя цитаты из каждого письма.

Каков правильный способ отправить электронные письма на бэкэнд без этих глупых скобок и цитат?

+0

Что делает возвращение validateEmails? являются ли письма по-прежнему разделены на ','? – quandrum

+0

@quandrum validateEmails() в основном разделяет строку электронной почты, а затем возвращает список [хорошие электронные письма, плохие электронные письма] – iCodeLikeImDrunk

ответ

3

Для получения формы [email protected], [email protected] вы можете использовать функцию Array.join(delim).

Ex:

var emails = ["[email protected]", "[email protected]"]; 
var email_string = emails.join(", "); 
// email_string: 
// [email protected], [email protected] 

Однако, я бы сказал, что вы хотите сохранить электронную почту как массив и сделать последующие:

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.

+0

ах присоединиться! это похоже на работу. благодаря! я должен использовать строку, вот как наши сервлеты настроены lol. – iCodeLikeImDrunk

0

пытаются добавить заголовок к конфигурации АЯКС:

заголовки: { 'Content-Type': "приложения/JSON; кодировка = UTF-8"}