2010-06-30 4 views
0

У меня есть ситуация, когда мне нужно отправить большой текст в ajax-запрос, используя метод 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"]; 

Я получаю null. Любая ссылка на пример? Благодаря

ответ

2

Написать

postbody:'Test=Test' 

вместо

postbody: {'Test':'Test'} 

Поскольку ваш текст большой, используйте функцию escape() так, чтобы она была безопасно передана на сервер. Также убедитесь, что ваши строки запроса и параметры сообщения не конфликтуют друг с другом.

1

postBody, как ожидается, должно быть имя/значение пары, как это:

postbody:'Test=Test' 

Вы также должны добавить evalJSON = true, если вы хотите использовать responseJSON при условии вашего возвращаемого типа содержимого на самом деле JSON