我一直在研究一本书中的JavaScript。一旦我玩有关客户端 - 服务器站点通信的代码,我想用下面的代码(使用IE ActiveX对象XMLHttpRequest)执行POST请求:
<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>
我在MyPage.aspx“页面的PAGE_load事件处理程序上有断点。我希望当上面发生这个HttpRequest时,执行将在那个地方停止。(在html按钮点击时调用它。)
问题是,请求已完成,获取了responseText(这是页面的xml内容),而且没有停在我放置断点的Page_Load方法。
所以,现在我无法理解调用.send()函数和POST请求类型以及调用submit()函数之间的区别。
如果你能简单解释一下主要的差异,我将不胜感激。
谢谢!
答案 0 :(得分:1)
不同之处在于使用send
会将数据发送回JavaScript调用例程而不重新加载页面,但是在表单上调用submit
会将表单提交给服务器,然后重新加载结果服务器就好像用户点击了表单的提交按钮一样。
“发送”就是所谓的Ajax,例如,Stackoverflow投票按钮如何在不重新加载整个页面的情况下将投票发送回服务器。