我有一种情况,我必须使用方法:POST发送ajax请求中的大文本。我试过这样做。
new Ajax.Request(url + "?" + params, {
method: 'post',postBody: {'Test':'Test'}, onSuccess: function (transport) {
switch (transport.responseJSON.Status) {
case "Success":
// alert(transport.responseJSON.Message);
var imgDiv = document.getElementById(control);
imgDiv.style.display = 'none';
break;
case "Failed":
alert(transport.responseJSON.Message);
break;
case "NotAuthorized":
alert(transport.responseJSON.Message);
break;
case "LoginRequired":
window.location = transport.responseJSON.RedirectAfterLogin;
break;
}
}
});
帖子正文中的测试将替换为文本区域中的大文本。但是当我尝试在服务器上访问它时
string test = context.Request["Test"];
我得到了空。 任何解决方案参考示例? 感谢
答案 0 :(得分:2)
写
postbody:'Test=Test'
而不是
postbody: {'Test':'Test'}
由于您的文字较大,因此请使用escape()
功能,以便将其安全地传输到服务器。还要确保您的查询字符串和帖子体内参数不会相互冲突。
答案 1 :(得分:1)
postBody应该是这样的名称/值对:
postbody:'Test=Test'
如果您想使用evalJSON = true
,假设您返回的内容类型实际上是JSON,则还需要添加responseJSON