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 期望的是 JSON 数据而不是 NameValueCollection 对象。

如果你看一下这篇文章,似乎推荐的路线是使用 aDictionary<string, string>()然后用JavaScriptSerializer().serialize.

于 2012-12-20T13:28:41.297 回答