В чем разница между функциями submit () и JavaScript () send ()? - PullRequest
1 голос
/ 09 ноября 2009

Я изучал JavaScript из одной книги. После того, как я поигрался с кодами, касающимися связи сайта клиент-сервер, я захотел сделать запрос POST с кодом ниже (который использует IE ActiveX объект XMLHttpRequest):

<script type="text/javascript">

var oRequest = HTTPRequestUtil.getXmlHttp();

var sRequestType = "post";
var sURLofRequest = "MyPage.aspx";
var bAsnychronously = false;

oRequest.open(sRequestType, sURLofRequest, bAsnychronously);
oRequest.send(null);

alert ('Status is '+oRequest.status+' ('+oRequest.statusText+')');
alert ('Response text is '+oRequest.responseText);

</script>

У меня есть точка останова на обработчике события PAGE_load страницы MyPage.aspx. Я ожидал, что выполнение остановится в этом месте, когда этот HttpRequest произойдет выше. (Он вызывается нажатием кнопки html).

Дело в том, что запрос выполнен, получен responseText (который был содержимым xml страницы) и не останавливается на методе Page_Load, где я поставил точку останова.

Итак, теперь я не могу понять разницу между вызовом функции .send () с типом запроса POST и функцией submit () при вызове.

Буду признателен, если вы кратко объясните основные различия.

спасибо!

1 Ответ

1 голос
/ 09 ноября 2009

Разница в том, что использование send отправит данные обратно в подпрограмму вызова JavaScript без перезагрузки страницы, но вызов submit в форме отправляет форму на сервер, а затем перезагружает результаты с сервера, как если бы пользователь нажал на кнопку отправки формы.

«Отправить» - это то, что известно как Ajax, и, например, именно так работают кнопки голосования Stackoverflow для отправки голосов обратно на сервер без перезагрузки всей страницы.

...