٪۴۰ تخفیف تابستانه شروع شد! بزرگترین حراج سال ما

به ما بپیوندید

آموزش درخواست AJAX

شی XMLHttpRequest برای درخواست داده از سرور استفاده می شود. درخواست را به یک سرور ارسال کنید برای ارسال درخواست به سرور ، ما از روش open () و send () XMLHttpRequestشی استفاده می کنیم: xhttp.open(“GET”, “ajax_info.txt”, true); xhttp.send(); Method Description open(method, url,…

محمد یوسفی

29 جولای 2021

شی 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
url: the server (file) location
async: true (asynchronous) or false (synchronous)

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
url: the server (file) location
async: true (asynchronous) or false (synchronous)

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
value: specifies the header value


درخواست همزمان

برای اجرای یک درخواست همزمان ، پارامتر سوم را در 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 را ایجاد کنند.

منبع

مطالب مرتبط

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها