2

コントローラーには、id と名前を含む json の結果を返すアクションがあります。次に、それを取得してこれを行います..

    var markup = '';
    for(var i = 0; i < data.length; i++) {
        markup += '<option value="' + data[i].id + '">' + data[i].agentName + '</option>';
    }

    $("#agentId").html(markup);

これ+ data[i].agentName +により、xss 攻撃が可能になるため、このシナリオを処理する最善の方法を見つけようとしています。

これまでのところ、私の「最善の」オプションは、サーバー側で AntiXss ライブラリを使用し、agentName を返す前にエンコードできるかどうかを確認することです。私が「最高」と言ったのは、(2012 年 5 月 14 日現在) AntiXss ライブラリが多くの嫌われ者になっているためです。

他のオプションはありますか?

アップデート

<select id="agentId"></select>

追加するselect要素を構築する方法です..

4

2 に答える 2

3

jQueryを使用してDOM要素を構築し、次を呼び出す必要がありますtext()

$("#agentId").empty().append($.map(data, function(obj) {
    return $('<option />').val(obj.id).text(obj.agentName)[0];
}));
于 2012-05-14T16:14:04.077 に答える
0

ノックアウト.jsを試しましたか?

選択した要素にjsonデータを入力する優れた組み込みのバインダーがあります。

http://knockoutjs.com/documentation/options-binding.html

于 2012-05-14T16:22:15.060 に答える