Программная отправка формы Microsoft AJAX - PullRequest
2 голосов
/ 15 июня 2009

Я использую ASP.NET MVC и Microsoft AJAX для создания формы AJAX, используя следующий синтаксис:

using (Ajax.BeginForm()) { ... }

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

<form onsubmit="Sys.Mvc.AsyncForm.handleSubmit(..." 
    method="post" action="/Search/SearchForClients">

Причина, по которой это проблема, заключается в том, что если вы используете jQuery для отправки формы программно (т.е. $('form').submit()), содержимое атрибута onsubmit не вызывается.

К счастью, на этом сайте я нашел обходной путь, который говорит вам, что нужно в основном оценить содержимое атрибута onsubmit и добавить его в качестве обработчика события:

$("form").submit(function(event) { 
    eval($(this).attr("onsubmit")); return false; 
});

Итак, мой вопрос: есть ли какие-либо проблемы с безопасностью, о которых я должен знать при этом? Кажется, что все должно быть в порядке, но я хочу быть уверен, прежде чем я начну добавлять evals в мой код.

1 Ответ

2 голосов
/ 16 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...