Пост Ajax не работает с HTML в параметрах в сочетании с .net 4 framework - PullRequest
0 голосов
/ 24 сентября 2010

После обновления нашего проекта до .net 4.0 framework (начиная с 3.5) мы столкнулись с некоторыми проблемами с вызовами ajax с html в параметрах.Как только пользователь вводит html в текстовую область, ajax-вызов больше не выполняется.Если пользователь вводит только обычный текст, проблем не возникает.

   <script language="javascript">
/* Doesn't work */
var html = "<p>test</p>";
var body = "default.aspx?html=" + urlEncode(html);
var des = new AJAXInteraction(url, handleResponse, 'saveloader');
des.doPost(body);

/* Work */
var html = "test";
var body = "default.aspx?html=" + urlEncode(html);
var des = new AJAXInteraction(url, handleResponse, 'saveloader');
des.doPost(body);
</script>

Кто-нибудь есть идеи?

Ответы [ 2 ]

1 голос
/ 24 сентября 2010

Вероятно, установка validateRequest в вашей директиве страницы на false, решит вашу проблему. Сделайте это на странице, которую вы отправляете:

<%@ Page validateRequest="false" %>

ASP.NET по умолчанию проверяет запросы на потенциально опасные входные данные, такие как HTML-код, и блокирует такие запросы. Имейте в виду, что при отключении проверки запроса вы должны самостоятельно очистить входные данные!

Подробнее об этом можно прочитать здесь: http://www.asp.net/learn/whitepapers/request-validation

0 голосов
/ 27 сентября 2010

Нашел ответ здесь: http://dotnetguts.blogspot.com/2010/06/validaterequestfalse-not-working-in-net.html. В ASP.NET 4 по умолчанию проверка запросов включена для всех запросов, а параметр validateRequest для каждой страницы игнорируется.

Чтобы вернуться к поведению функции проверки запросов ASP.NET 2.0, добавьте в файл Web.config следующий параметр:

<system.web>
 <httpRuntime requestValidationMode="2.0" />
</system.web>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...