1

私はメンバーの小さなウェブサイトに自分自身を接続しようとしています.xmlに基づいたある種のチャットボードがあり、解析して統計を行います.今、私は投稿のための独自のオプションを使用して短い要約を投稿できるようにしたいと考えています. 、ここで JavaScript によって処理されます (cb はチャットボード番号):

function CB_Post() {
    jQuery.ajaxSetup({ contentType: "application/x-www-form-urlencoded;charset=utf-8" });
    //alert($("#message").val());
    //$("#fm").serialize()
    $.post("do.aspx?do=add", { message: $("#message").val(), cb: $("#cb").val() }, function (data) {
        if (data == '') {
            document.getElementById("message").value = '';
            FC('message', iMaxChar);
        } else {
            alert(data);
        }
    }, "text");

これまでの私の実装は次のとおりです。

public void PostData(string text)
{
    var data = new NameValueCollection();
    data.Add("message", (@text+@"\n"));
    data.Add("cb", "0");
    client.Headers["contentType"] = "application/x-www-form-urlencoded;charset=utf-8";
    var result = client.UploadValues("/cb/do.aspx?do=add", data);            
}

これは機能し、メッセージは送信されますが、送信しただけでも、チャットルームでは空の文字列になります"hey"。ここで何らかのフォーマットまたはエンコード/デコードが欠落していますか?

4

1 に答える 1

0

まあ、あなたはそのように投稿することを妨げるいくつかのセキュリティがあると思うので、それが問題かもしれません.

ただし、do.aspx は NameValueCollection オブジェクトではなく JSON データを想定していると思われます。

この投稿を見ると、推奨されるルートは を使用してDictionary<string, string>()から、 でシリアル化することJavaScriptSerializer().serializeです。

于 2012-12-20T13:28:41.297 に答える