Ajax中的XMLHttp请求
Ajax中的XMLHttp请求
当Microsoft开始在Internet Explorer 5.0中引入对XML基本的支持时,也引入了一个称为MSXML的ActiveX库,此库中的一个对象很快便成为广为人知的——XMLHttp。
XMLHttp对象最初是为了让开发者能在应用程序中的任何地方都能初始化HTTP请求而创造出来的,这些请求倾向于返回XML,所以XMLHttp对象提供了一个非常简单的方法用于以XML文档的方式访问所需信息。由于从一开始它就是一个ActiveX控件,因此XMLHttp不但可用于网页,也可应用于任何基于Windows的应用程序;然而,显然它在互联网上的受欢迎程序,要大大超出在桌面程序方面。
为紧跟潮流,Mozilla也在它的浏览器Firefox中模仿了XMLHttp功能,但不久后,Safari(从版本1.2开始)和Opera(版本7.6)浏览器也相继模仿了Mozilla的功能实现。今天,这四大浏览器都已在某种程度上支持XMLHttp(Safari和Opera在功能实现上仍不完整,除了GET和POST,不支持其他类型的请求)。
创建一个XMLHttp对象
显然,使用一个XMLHttp对象的第一步,是要创建它,因为Microsoft对此的实现是ActiveX控件,所以你也必须在JavaScript中使用ActiveXObject的所有者类,并传递给它一个XMLHttp控件的签名:
var oXmlHttp = new ActiveXObject("Microsoft.XMLHttp");
上述代码创建了XMLHttp对象的第一个版本(其与IE 5.0一同发布),问题是,随着后续MSXML库的发布,也发布了好几个不同的新版本,每次发布都带来了更好的稳定性与更快的速度,所以,必须要确定你使用的是用户电脑上可用的最新版本。每个版本的签名如下:
Microsoft.XMLHttp
MSXML2.XMLHttp
MSXML2.XMLHttp.3.0
MSXML2.XMLHttp.4.0
MSXML2.XMLHttp.5.0
不幸的是,确定可用最佳版本唯一的方法,是依次尝试创建它们。因为其本身为一个ActiveX控件,任何创建对象上的失败,都会抛出一个错误,这意味着你必须在一个try…catch块中编写这些代码,如下:
 
相关文档:
var xmlhttp;
function verify()
{
//2.创建XmlHttpRequest对象
//这是XmlHttpRequest对象五步中使用最复杂的一步
//需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码
if(window.XMLHttpRequest)
{
......
Ajax调用远程服务器数据会出现拒绝访问的问题。这是因为基于安全的考虑,AJAX只能访问本域下的资源,而不能跨域访问。也就是说,domain1.com站点中的AJAX只能访问domain1.com站点下的资源,而不能跨域访问domain2.com站点中的资源,这就是AJAX跨域问题。
解决思路:页面在提交请求时 ......
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。
废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这 ......
场景:在Gridview列表中显示有从数据库提取出来的数据,现在要通过jQuery.Ui.Dialog弹出显示每条数据的详细信息,并在弹出窗口中修改编辑。
需要处理的问题:1、将Gridview中选择记录ID提交给jQuery.Ui.Dialog
  ......
function ScreenConvert()
{
var browser = new Browser1();
var objScreen = document.getElementById("ScreenOver");
if(!objScreen)
var objScreen = document.createElement("div");
var oS = objScreen.style;
objScreen.id = "ScreenOver";
oS.display = "bloc ......