0

ユーザーが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

バックエンドでそれを処理する方法は、基本的に「[]」を削除してから、各電子メールから引用符を削除することです。

それらのばかげた括弧や引用符なしでバックエンドに電子メールを送信する適切な方法は何ですか?

4

2 に答える 2

3

フォームを取得するに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を既に解析できる場合は、これがより簡単なアプローチになる可能性があります。

于 2013-03-04T22:39:34.583 に答える
0

ajax構成にヘッダーを追加してみてください:

ヘッダー:{'Content-type': "application / json; charset = utf-8"}

于 2013-03-04T22:42:23.737 に答える