如何使用原型在AJAX请求中发送大文本?

时间:2010-06-30 07:03:37

标签: ajax prototypejs

我有一种情况,我必须使用方法: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"]; 

我得到了空。 任何解决方案参考示例? 感谢

2 个答案:

答案 0 :(得分:2)

postbody:'Test=Test'

而不是

postbody: {'Test':'Test'}

由于您的文字较大,因此请使用escape()功能,以便将其安全地传输到服务器。还要确保您的查询字符串和帖子体内参数不会相互冲突。

答案 1 :(得分:1)

postBody应该是这样的名称/值对:

postbody:'Test=Test'

如果您想使用evalJSON = true,假设您返回的内容类型实际上是JSON,则还需要添加responseJSON