شی XMLHttpRequest برای درخواست داده از سرور استفاده می شود.
درخواست را به یک سرور ارسال کنید
برای ارسال درخواست به سرور ، ما از روش open () و send () XMLHttpRequest
شی استفاده می کنیم:
xhttp.open(“GET”, “ajax_info.txt”, true);
xhttp.send();
Method | Description |
---|---|
open(method, url, async) | Specifies the type of request
method: the type of request: GET or POST |
send() | Sends the request to the server (used for GET) |
send(string) | Sends the request to the server (used for POST) |
url – پرونده ای در سرور
پارامتر url open()
روش ، آدرس یک فایل در سرور است:
xhttp.open(“GET”, “ajax_test.asp”, true);
این پرونده می تواند هر نوع فایلی باشد مانند .txt و .xml یا فایل های اسکریپت سرور مانند .asp و .php (که می توانند قبل از ارسال پاسخ ، عملکردهایی را روی سرور انجام دهند).
ناهمزمان – درست است یا نادرست؟
درخواستهای سرور باید بصورت غیر همزمان ارسال شوند.
پارامتر async روش open () باید درست باشد:
xhttp.open(“GET”, “ajax_test.asp”, true);
با ارسال همزمان ، JavaScript نیازی به انتظار برای پاسخ سرور نیست ، اما در عوض می تواند:
- اسکریپت های دیگر را هنگام انتظار برای پاسخ سرور اجرا کنید
- پس از آماده شدن پاسخ با پاسخ برخورد کنید
مقدار پیش فرض پارامتر async async = true است.
با خیال راحت می توانید پارامتر سوم را از کد خود حذف کنید.
XMLHttpRequest همگام (async = false) توصیه نمی شود زیرا تا آماده شدن پاسخ سرور ، JavaScript متوقف می شود. اگر سرور شلوغ یا کند باشد ، برنامه قطع می شود یا متوقف می شود.
شی XMLHttpRequest برای درخواست داده از سرور استفاده می شود.
درخواست را به یک سرور ارسال کنید
برای ارسال درخواست به سرور ، ما از روش open () و send () XMLHttpRequest
شی استفاده می کنیم:
xhttp.open(“GET”, “ajax_info.txt”, true);
xhttp.send();
Method | Description |
---|---|
open(method, url, async) | Specifies the type of request
method: the type of request: GET or POST |
send() | Sends the request to the server (used for GET) |
send(string) | Sends the request to the server (used for POST) |
url – پرونده ای در سرور
پارامتر url open()
روش ، آدرس یک فایل در سرور است:
xhttp.open(“GET”, “ajax_test.asp”, true);
این پرونده می تواند هر نوع فایلی باشد مانند .txt و .xml یا فایل های اسکریپت سرور مانند .asp و .php (که می توانند قبل از ارسال پاسخ ، عملکردهایی را روی سرور انجام دهند).
ناهمزمان – درست است یا نادرست؟
درخواستهای سرور باید بصورت غیر همزمان ارسال شوند.
پارامتر async روش open () باید درست باشد:
xhttp.open(“GET”, “ajax_test.asp”, true);
با ارسال همزمان ، JavaScript نیازی به انتظار برای پاسخ سرور نیست ، اما در عوض می تواند:
- اسکریپت های دیگر را هنگام انتظار برای پاسخ سرور اجرا کنید
- پس از آماده شدن پاسخ با پاسخ برخورد کنید
مقدار پیش فرض پارامتر async async = true است.
با خیال راحت می توانید پارامتر سوم را از کد خود حذف کنید.
XMLHttpRequest همگام (async = false) توصیه نمی شود زیرا تا آماده شدن پاسخ سرور ، JavaScript متوقف می شود. اگر سرور شلوغ یا کند باشد ، برنامه قطع می شود یا متوقف می شود.
دریافت کنید یا ارسال کنید؟
GET
ساده تر و سریعتر از است POST
و می تواند در بیشتر موارد استفاده شود.
با این حال ، همیشه از درخواست های POST استفاده کنید:
- یک فایل ذخیره شده گزینه ای نیست (یک پرونده یا پایگاه داده را در سرور به روز کنید).
- ارسال مقدار زیادی داده به سرور (POST هیچ محدودیتی در اندازه ندارد).
- با ارسال ورودی کاربر (که می تواند حاوی نویسه های ناشناخته باشد) ، POST از GET قوی تر و ایمن تر است.
درخواست های GET
یک GET
درخواست ساده :
مثال
xhttp.open("GET", "demo_get.asp");
xhttp.send();
در مثال بالا ، ممکن است یک نتیجه cached داشته باشید. برای جلوگیری از این ، یک شناسه منحصر به فرد به URL اضافه کنید:
مثال
xhttp.open("GET", "demo_get.asp?t=" + Math.random());
xhttp.send();
اگر می خواهید اطلاعات را با GET
روش ارسال کنید ، اطلاعات را به URL اضافه کنید:
مثال
xhttp.open("GET", "demo_get2.asp?fname=Henry&lname=Ford"); xhttp.send();
نحوه استفاده سرور از ورودی و نحوه پاسخگویی سرور به یک درخواست ، در فصل بعدی توضیح داده شده است.
درخواست های پست
یک POST
درخواست ساده :
مثال
xhttp.open("POST", "demo_post.asp"); xhttp.send();
برای ارسال اطلاعات مانند فرم HTML ، یک هدر HTTP با اضافه کنید setRequestHeader()
. داده هایی را که می خواهید در این send()
روش ارسال کنید مشخص کنید :
مثال
xhttp.open("POST", "ajax_test.asp"); xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.send("fname=Henry&lname=Ford");
Method | Description |
---|---|
setRequestHeader(header, value) | Adds HTTP headers to the request
header: specifies the header name |
درخواست همزمان
برای اجرای یک درخواست همزمان ، پارامتر سوم را در open()
روش تغییر دهید false
:
xhttp.open("GET", "ajax_info.txt", false);
بعضی اوقات از async = false برای تست سریع استفاده می شود. همچنین می توانید درخواست های همزمان را در کد قدیمی JavaScript پیدا کنید.
از آنجا که کد منتظر تکمیل سرور است ، نیازی به onreadystatechange
عملکرد نیست:
مثال
xhttp.open("GET", "ajax_info.txt", false); xhttp.send(); document.getElementById("demo").innerHTML = xhttp.responseText;
XMLHttpRequest همگام (async = false) توصیه نمی شود زیرا تا آماده شدن پاسخ سرور ، JavaScript متوقف می شود. اگر سرور شلوغ یا کند باشد ، برنامه قطع می شود یا متوقف می شود.
ابزارهای مدرن توسعه دهنده توصیه می شود که در مورد استفاده از درخواست های همزمان هشدار دهند و ممکن است هنگام بروز یک استثنا exception InvalidAccessError را ایجاد کنند.