我正在尝试将自己连接到一个较小的网站,我是该网站的成员(member)。 它有某种基于 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”
。
我在这里缺少某种格式或编码/解码吗?
最佳答案
好吧,您可能会认为会有一些安全措施阻止您这样发帖,所以这可能就是问题所在。
但是我怀疑 do.aspx 需要 JSON 数据而不是 NameValueCollection 对象。
如果你看一下at this post看来推荐的路线是使用 Dictionary<string, string>()
然后用 JavaScriptSerializer().serialize
序列化它.
关于c# - 从 javascript 到 C# MVC 劫持的 POST 中的空消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13971642/