تمام مرورگرهای مدرن از شی XMLHttpRequest پشتیبانی می کنند. شیء XMLHttpRequest می تواند برای تبادل داده ها با یک وب سرور در پشت صحنه ها استفاده شود. این به این معنی است که ممکن است قسمتهای یک صفحه وب را به روزرسانی کنید بدون اینکه کل صفحه را بارگیری کنید.
یک شی XMLHttpRequest ایجاد کنید
تمام مرورگرهای مدرن (Chrome ، Firefox ، IE7 + ، Edge ، Safari ، Opera ) یک شی XMLHttpRequest ساخته شده دارند.
نحو ایجاد یک شی
XMLHttpRequest :
variable = new XMLHttpRequest();
مثال:
var xhttp = new XMLHttpRequest();
دسترسی به دامنه های دیگر
به دلایل امنیتی، مرورگرهای مدرن اجازه دسترسی به دامنه های دیگر را نمی دهند.
این به این معنی است که هر دو صفحه وب و فایل XML که بارگذاری می کند، باید بر روی یک سرور قرار گیرد.
مرورگرهای قدیمی تر (IE5 و IE6 )
نسخه های قدیمی اینترنت اکسپلورر (5/6) از جسم ActiveX به جای شی XMLHttpRequest استفاده می کنند:
variable = new ActiveXObject("Microsoft.XMLHTTP");
مثال:
برای مدیریت IE5 و IE6 ، بررسی کنید که آیا مرورگر از شیء XMLHttpRequest پشتیبانی می کند یا اینکه یک شی ActiveX را ایجاد کند :
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
} else {
// code for old IE browsers
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
متدهای شی XMLHttpRequest
توصیف | متد |
یک شی XMLHttpRequest جدید ایجاد می کند |
new XMLHttpRequest() |
درخواست فعلی را لغو می کند |
abort() |
اطلاعات هدر را بازمی گرداند |
getAllResponseHeaders() |
اطلاعات هدر خاصی را بازمی گرداند |
getResponseHeader() |
درخواست را مشخص می کند
روش: درخواست نوع GET یا POST |
open(method, url, async, user, psw) |
درخواست را به سرور ارسال می کند مورد استفاده برای درخواست های GET |
send() |
درخواست را به سرور ارسال می کند. مورد استفاده برای درخواست های POST |
send(string) |
یک جفت برچسب / ارزش را به هدر ارسال می کند |
setRequestHeader() |
خواص شی XMLHttpRequest
توصیف | متد |
تعیین یک تابع را وقتی که propertyState خاصیت تغییر کند فراخوانی می شود. |
onreadystatechange |
دارای وضعیت XMLHttpRequest است. 0: درخواست اولیه نشده است 1: اتصال به سرور برقرار شد 2: درخواست دریافت شد 3: در حال پردازش درخواست 4: درخواست تکمیل شده و پاسخ آماده است |
readyState |
داده های پاسخ را به عنوان یک رشته برمی گرداند |
responseText |
داده های پاسخ را به عنوان داده های XML باز می گرداند |
responseXML |
شماره وضعیت شماره درخواست را برمی گرداند 200: “خوب” 403: “ممنوع” 404 پیدا نشد” |
status |
وضعیت را بصورت متنی (مثلا “OK ” یا “Not Found “) برمی گرداند |
statusText |