AJAX XMLHttpRequest

شیء XMLHttpRequest امکان استفاده از AJAX را فراهم می‌کند.

XMLHttpRequest

شیء XMLHttpRequest کلید AJAX است.

این شیء پس از发布 Internet Explorer 5.5 در ژوئیه 2000 موجود بود، اما قبل از اینکه در سال 2005 بحث‌ها درباره AJAX و Web 2.0 شروع شود، این شیء به اندازه کافی شناخته نشده بود.

ایجاد شیء XMLHttpRequest

مرورگرهای مختلف از روش‌های مختلفی برای ایجاد XMLHttpRequest شیء.

Internet Explorer از ActiveXObject

برخی از مرورگرها از نام XMLHttpRequest شیء داخلی JavaScript.

برای حل این مشکل می‌توان از این کد ساده استفاده کرد:

var XMLHttp=null
if (window.XMLHttpRequest)
  {
  XMLHttp=new XMLHttpRequest()
  }
else if (window.ActiveXObject)
  {
  XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  }

代码解释:

  1. ابتدا یک شیء ایجاد کنید که به عنوان XMLHttpRequest استفاده شود XMLHttp 变量。把它的值设置为null。
  2. سپس تست کنید window.XMLHttpRequest آیا موجود است. در نسخه‌های جدیدتر Firefox، Mozilla، Opera و Safari، این شیء موجود است.
  3. اگر موجود باشد، از آن برای ایجاد یک شیء جدید استفاده کنید:XMLHttp=new XMLHttpRequest()
  4. اگر موجود نباشد، بررسی کنید window.ActiveXObject آیا موجود است. در نسخه‌های 5.5 و بالاتر Internet Explorer، این شیء موجود است.
  5. اگر موجود باشد، از آن برای ایجاد یک شیء جدید استفاده کنید:XMLHttp=new ActiveXObject()

مثال بهبود یافته

برخی از برنامه‌نویسان علاقه‌مند به استفاده از نسخه جدیدترین و سریع‌ترین XMLHttpRequest هستند.

این مثال سعی می‌کند نسخه جدیدترین "Msxml2.XMLHTTP" را بارگذاری کند، که در Internet Explorer 6 قابل استفاده است، اگر بارگذاری نشد، به "Microsoft.XMLHTTP" بازمی‌گردد، که در نسخه‌های 5.5 و بعدی Internet Explorer قابل استفاده است.

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

代码解释:

  1. 首先创建用作XMLHttpRequest对象的 XMLHttp 变量。把它的值设置为null。
  2. 按照web标准创建对象 (Mozilla, Opera以及Safari):XMLHttp=new XMLHttpRequest()
  3. 按照微软的方式创建对象,在Internet Explorer 6及更高的版本可用:XMLHttp=new ActiveXObject("Msxml2.XMLHTTP")
  4. 如果捕获错误,则尝试更老的方法 (Internet Explorer 5.5) :XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")

更多有关XMLHttpRequest对象的信息

如果您希望阅读更多有关XMLHttpRequest的内容,请访问我们的 AJAX教程