نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی

پرس و جوهای سطح پایین روش آژاکس

درسی که در آن از مثال‌هایی برای ایجاد درخواست‌های AJAX ناهمزمان ساده به سرور استفاده می‌کنیم. ما از هر دو روش GET و POST به عنوان روشی برای انتقال درخواست ها استفاده خواهیم کرد. در سرور، درخواست ها را با استفاده از اسکریپت های PHP پردازش می کنیم.

درخواست AJAX ناهمزمان چیست؟

فناوری AJAX عمدتاً برای ایجاد درخواست های ناهمزمان به سرور استفاده می شود. درخواست ناهمزمان درخواستی است که در پس زمینه اجرا می شود و مانع از تعامل کاربر با صفحه نمی شود.

هنگام ارسال یک درخواست ناهمزمان، مرورگر (صفحه) "یخ زده" نیست، یعنی. با او، مانند قبل، می توانید کار کنید. اما چگونه می دانید که چه زمانی پاسخی از سرور می آید. برای تعیین این مورد، باید ویژگی ReadState مرورگر را کنترل کنید. این ویژگی شامل یک عدد است که با مقدار آن می توانید قضاوت کنید که درخواست در چه مرحله ای است. جدول زیر مقادیر اصلی ویژگی readyState و حالات مربوط به آنها را خلاصه می کند.

آن ها به نظر می رسد که باید ردیابی کنیم که چه زمانی مقدار ویژگی readyState برابر با 4 است. این بدان معناست که درخواست ارسال شده پاسخی از سرور دریافت کرده است. بقیه مقادیر در عمل به ندرت مورد استفاده قرار می گیرند و ممکن است برخی از مرورگرها از آنها پشتیبانی نکنند.

برای تعیین اینکه یک درخواست در کدام مرحله است، باید از رویداد onreadystatechange شی XMLHttpRequest استفاده کنید. این رویداد زمانی رخ می دهد که مقدار ویژگی readyState تغییر کند. بنابراین، در کنترلر این رویداد (یک تابع بدون نام یا نام) می توانید اقداماتی را بنویسید که بررسی می کند آیا این ویژگی برابر با 4 است یا خیر و اگر مثلاً پاسخ سرور را در صفحه نمایش می دهد.

ایجاد یک درخواست AJAX ناهمزمان (روش GET)

بیایید ایجاد یک درخواست AJAX ناهمزمان را با استفاده از مثالی در نظر بگیریم که به کاربر خوش آمد می گوید و آدرس IP او را پس از بارگذاری صفحه نمایش می دهد.

برای انجام این کار، باید 2 فایل را در یک دایرکتوری روی سرور ایجاد کنید:

  1. Welcome.html - صفحه HTML که به کاربر نمایش داده می شود. در همان صفحه، ما یک اسکریپت قرار می دهیم که تمام اقدامات لازم برای کار AJAX در سمت مشتری را انجام می دهد.
  2. processing.php - فایل PHP که درخواست را در سمت سرور پردازش می کند و پاسخ را تشکیل می دهد. بیایید توسعه را با ایجاد ساختار اصلی فایل welcome.html شروع کنیم.
نمونه ای از کار AJAX

نمونه ای از کار AJAX

بیایید به دنباله اقداماتی که باید در سمت مشتری (در کد جاوا اسکریپت) انجام شود، نگاه کنیم:

    بیایید داده های مورد نیاز برای اجرای درخواست روی سرور را آماده کنیم. اگر برای اجرای پرس و جو در سرور به داده ای نیاز نباشد، می توان از این مرحله گذشت.

    بیایید متغیری ایجاد کنیم که حاوی نمونه ای از شی XHR (XMLHttpRequest) باشد.

    اجازه دهید درخواست را با استفاده از روش open () پیکربندی کنیم.

    پارامترهای زیر مشخص شده است:

    • روشی که از طریق آن درخواست به سرور ارسال می شود (GET، POST).
    • نشانی اینترنتی که به درخواست روی سرور رسیدگی می کند.
    • نوع درخواست: همزمان (نادرست) یا ناهمزمان (درست).
    • نام کاربری و رمز عبور در صورت نیاز
  1. در رویداد onreadystatechange شی XHR مشترک شوید و کنترل کننده را به عنوان یک تابع ناشناس یا با نام مشخص کنید. پس از آن، یک کد در داخل این تابع ایجاد می کنیم که وضعیت پاسخ را بررسی می کند و اقدامات خاصی را در صفحه انجام می دهد. پاسخی که از سرور می آید همیشه در ویژگی answerText است.

    علاوه بر بررسی مقدار ویژگی readyState با عدد 4، می توانید مقدار ویژگی status را بررسی کنید. این ویژگی وضعیت درخواست را تعیین می کند. اگر 200 باشد همه چیز اوکی است. در غیر این صورت خطایی رخ داده است (مثلاً 404 - URL یافت نشد).

    بیایید با استفاده از روش send () درخواستی را به سرور ارسال کنیم.

    اگر از متد GET برای ارسال درخواست استفاده کنیم، دیگر نیازی به انتقال داده به پارامتر این روش نیست. آنها به عنوان بخشی از URL ارسال می شوند.

    اگر از متد POST برای ارسال درخواست استفاده کنیم، داده ها باید به عنوان پارامتر به متد send () ارسال شوند. علاوه بر این، قبل از فراخوانی این روش، باید هدر Content-Type را تنظیم کنید تا سرور بداند درخواست در چه کدگذاری به آن رسیده است و بتواند آن را رمزگشایی کند.

محتوای عنصر اسکریپت:

// 2. ایجاد درخواست متغیر var request = new XMLHttpRequest (); // 3. تنظیم درخواست request.open ("GET"، "processing.php"، true); // 4. اشتراک در رویداد onreadystatechange و پردازش آن با استفاده از تابع ناشناس request.addEventListener ("readystatechange"، تابع () (// اگر حالت های درخواست 4 باشد و وضعیت درخواست 200 باشد (OK) اگر ((request.readyState = = 4) && (request.status == 200)) (// برای مثال، نمایش شی XHR در کنسول مرورگر console.log (درخواست)؛ // و پاسخ (متن) دریافت شده از سرور در کنسول هشدار .log (request.responseText) ؛ // دریافت عنصر c id = Welcome var welcome = document.getElementById ("welcome")؛ // جایگزینی محتوای عنصر با پاسخ از سرور Welcome.innerHTML = request.responseText ;))) // 5. ارسال درخواست به سرور request.send ();

در نتیجه، فایل welcome.html دارای کد زیر خواهد بود:

نمونه ای از کار AJAX

نمونه ای از کار AJAX

روی سرور (با استفاده از php):

  1. بیایید داده ها را بدست آوریم. اگر داده ها از طریق روش GET ارسال می شوند، سپس از آرایه جهانی $ _GET ["نام"]. و اگر داده ها با استفاده از روش POST منتقل شوند، از آرایه جهانی $ _POST ["name"].
  2. با استفاده از این داده ها، اجازه دهید برخی از اقدامات را در سرور انجام دهیم. در نتیجه پاسخی خواهیم گرفت. بیایید آن را تکرار کنیم.

ایجاد یک درخواست AJAX ناهمزمان (روش POST)

بیایید مثال بالا را اصلاح کنیم. اکنون درخواست AJAX به سرور پس از کلیک بر روی دکمه اجرا می شود. نامی که کاربر در عنصر ورودی وارد کرده را دریافت کرده و از طریق روش POST به سرور ارسال می کند. پس از دریافت پاسخ از سرور، محتوای عنصر div در صفحه را با آن جایگزین کنید.

نمونه ای از کار AJAX

نمونه ای از کار AJAX



در عصر وب مدرن، بیشتر سایت ها تعاملی تر می شوند. اگر قبلاً برای دریافت داده های به روز شده نیاز به به روز رسانی کامل صفحه داشتیم، اکنون فناوری هایی ظاهر شده اند که اجازه بارگیری کل صفحه را نمی دهند، بلکه تنها بخشی جداگانه از آن را بارگیری می کنند. این به نوبه خود، راحتی را هم برای کاربران و هم برای صاحبان سرور فراهم می کند، زیرا برای کاربر بارگذاری صفحه سریعتر خواهد بود، زیرا تنها قسمت جداگانه ای از صفحه بارگذاری می شود و سرور نیازی به تولید صفحه هر بار و ارائه آن ندارد. به کاربر. پیاده سازی این ویژگی ها با استفاده از php و ajax آسان است.

امروز یک مثال کوچک را برای درک بهتر نحوه عملکرد این مفهوم تحلیل خواهیم کرد. AJAX... گاهی اوقات برای مبتدیان درک نحوه تعامل php و ajax با یکدیگر دشوار است، بسیاری از مردم به دنبال نمونه هایی از نحوه اعتبارسنجی فرم ها بدون بارگیری مجدد کل صفحه هستند. من به طور خلاصه به شما نشان خواهم داد که چگونه این کار را انجام دهید، تا بتوانید اصول و اصولی را که به شما امکان می دهد در آینده سریعتر ابزارهای دیگر را یاد بگیرید و اسکریپت های خود را بنویسید، درک کنید.

بیایید یک کار کوچک برای خودمان ایجاد کنیم، وجود یک آدرس ایمیل در پایگاه داده را بدون بارگیری مجدد صفحه با استفاده از php و ajax بررسی می کنیم. چنین مثالی به خوبی نشان می‌دهد که چگونه می‌توانیم بدون بارگیری مجدد صفحه در مرورگر با سرور تعامل داشته باشیم، و همچنین، اغلب در انواع مختلف اعتبارسنجی فرم کاربر استفاده می‌شود. در پوشه اصلی، 3 فایل با نام های index.php، email.php، validate.js ایجاد کنید.

یک صفحه ایجاد کنید

بیایید یک صفحه ساده با یک فرم ایجاد کنیم که فقط شامل یک فیلد ایمیل باشد.
نحو فایل Index.php

آموزش AJAX

ساده ترین راه برای کار با AJAXبرای اتصال چارچوب است جی کوئری، که در واقع انجام دادم. جی کوئرینحوی آسان برای درک و استفاده آسان برای ارسال در اختیار ما قرار می دهد AJAXدرخواست ها، چرا از این استفاده نمی کنید؟

ایجاد اسکریپت Js

نحو فایل validate.js است

$ (document) .ready (function () (var email = ""؛ $ ("# email"). keyup (function () (var value = $ (this) .val (); $ .ajax ((نوع: "POST"، url: "email.php"، data: "email =" + value, success: function (msg) (if (msg == "valid") ($ ("# message"). Html (" این ایمیل قابل استفاده است.این ایمیل قبلا گرفته شده است.");))));))) $ (" # ارسال "). روی (عملکرد () (اگر (ایمیل ==" ") (هشدار ("لطفا، داده ها را در همه ایمیل ها قرار دهید") کلیک کنید. $ .ajax ((نوع: "POST"، آدرس اینترنتی: "email.php"، داده: "add_email =" + ایمیل، موفقیت: تابع (msg) ($ ("# پیام"). html (msg);)) )))))))

کنترل کننده پی اچ پی

این اسکریپت دریافت خواهد کرد پستاز مشتری درخواست کنید، آن را پردازش کنید و نتیجه را برگردانید. AJAXنتیجه را می خواند و بر اساس آن تصمیم می گیرد.
نحو برای فایل email.php است

$ connection = mysqli_connect ("localhost"، "email"، "email"، "email"); if (isset ($ _ POST ["email"]) && $ _POST ["email"]! = "") ($ email = $ _POST ["email"]؛ $ email = mysqli_real_escape_string ($ connection, $ email); if (! filter_var ($ email, FILTER_VALIDATE_EMAIL)) (echo "invalid";) other ($ sql = "SELECT id FROM email WHERE email =" $ email ""; $ result = mysqli_query ($ connection, $ sql); if ( mysqli_num_rows ($ نتیجه) == 1) (echo "invalid";) other (echo "valid";))) if (isset ($ _ POST ["add_email"]) && $ _POST ["add_email"]! = "" ) ($ email = mysqli_real_escape_string ($ connection, $ _ POST ["add_email"]); $ sql = "INSERT INTO email (email) VALUES (" $ email ")"؛ if (mysqli_query ($ connection, $ sql )) (پژواک موفقیت";) else (اکو" خطا"; } }

در اسکریپت php ما، رایج‌ترین کدی است که درخواست ارسال را پردازش می‌کند و متنی را در صفحه چاپ می‌کند. در نتیجه AJAXدرخواستی را به اسکریپت php ارسال می کند، اسکریپت آن را پردازش می کند و نتیجه را برمی گرداند. AJAXنتیجه را می خواند و صفحه را در زمان واقعی تغییر می دهد.

AJAX درخواست POST را از طریق این کد به اسکریپت ارسال می کند:

$ .ajax ((نوع: "POST"، url: "email.php"، داده: "email =" + value, success: function (msg) (اگر (msg == "معتبر") ($ ("# پیام ") .html (" این ایمیل قابل استفاده است.")؛ ایمیل = ارزش؛) else ($ ("# پیام "). html (" این ایمیل قبلا گرفته شده است."); } } });

type - نوع درخواست، POST یا GET. در مورد ما، POST؛
url - آدرس اسکریپتی که درخواست به آن ارسال می شود.
داده - داده هایی که در درخواست منتقل می شوند.
موفقیت - در نتیجه اجرای موفقیت آمیز درخواست چه باید کرد. در مورد ما، تابع نامیده می شود.

در خود اسکریپت، هر بار که یک کاراکتر در فیلد ایمیل وارد می شود، بررسی وجود ایمیل در پایگاه داده انجام می شود. در اسکریپت، $ ("# ایمیل"). Keyup (تابع () ()); که فشار دادن کلید را در فیلد با id = "email" بررسی می کند.
همانطور که می بینید، کد بسیار ساده است و به مهارت های خاصی برای درک نیاز ندارد، همه چیز به مدیریت رویدادهای keyup () مرتبط است - فشار دادن یک کلید، کلیک کردن () - کلیک کردن روی یک عنصر. به دنبال AJAXدرخواست و پاسخ از اسکریپت. بنابراین، با استفاده از php و ajax، می توانید تقریباً امکانات بی پایانی برای ایجاد صفحات تعاملی داشته باشید.
این کد ادعا نمی کند که کیفیت بالایی دارد، اما اگر آن را توسعه دهید، اعتبارسنجی های صحیح را در سطح کلاینت و سرور اضافه کنید، css را وارد کنید، سپس می توانید کاملاً از آن در پروژه های خود استفاده کنید.
اگر سوالی دارید، در نوشتن نظرات دریغ نکنید.
روز خوبی داشته باشید و به زودی شما را می بینم 🙂

بدون بارگیری مجدد صفحه از سرور درخواست می کند. این یک روش سطح پایین با سفارشی سازی زیاد است. این در قلب سایر روش های آژاکس است. دارای دو مورد استفاده:

آدرس اینترنتی- آدرس درخواست
تنظیمات- در این پارامتر می توانید تنظیمات این درخواست را تنظیم کنید. با استفاده از یک شی در قالب (نام: مقدار، نام: ارزش ...) مشخص می شود. هیچ یک از تنظیمات مورد نیاز نیست. می توانید تنظیمات پیش فرض را با استفاده از روش $ .ajaxSetup () تنظیم کنید.

لیست تنظیمات

↓ نام: تایپ کنید (پیش فرض)

هنگامی که درخواستی انجام می شود، هدرها انواع محتوای معتبر مورد انتظار از سرور را مشخص می کنند. مقادیر این نوع از پارامتر Accepts گرفته می شود.

به‌طور پیش‌فرض، تمام درخواست‌های بدون بارگذاری مجدد صفحه به‌صورت ناهمزمان انجام می‌شوند (یعنی پس از ارسال درخواست به سرور، صفحه کار خود را در حین انتظار برای پاسخ متوقف نمی‌کند). اگر به اجرای کوئری همزمان نیاز دارید، پارامتر را روی false قرار دهید. درخواست های بین دامنه و "jsonp" نمی توانند به صورت همزمان اجرا شوند.

لطفاً توجه داشته باشید که اجرای درخواست‌ها در حالت همزمان ممکن است منجر به مسدود شدن صفحه تا تکمیل کامل درخواست شود.

این فیلد حاوی تابعی است که درست قبل از ارسال درخواست ajax به سرور فراخوانی می شود. چنین تابعی می تواند برای اصلاح یک شی jqXHR مفید باشد (در نسخه های قبلی کتابخانه (تا 1.5)، XMLHttpRequest به جای jqXHR استفاده می شود). به عنوان مثال، می توانید هدرهای مورد نیاز و غیره را تغییر دهید / مشخص کنید. Object-jqXHR به عنوان اولین آرگومان به تابع ارسال می شود. آرگومان دوم تنظیمات درخواست است.

سرصفحه های درخواست اضافی (هدر) را می توان در این قسمت مشخص کرد. این تغییرات قبل از تماس با قبل از ارسال، که در آن ویرایش‌های هدر نهایی انجام می‌شود، اعمال می‌شود.

وقتی این تنظیم روی true تنظیم شود، درخواست تنها در صورتی با وضعیت "موفقیت" اجرا می شود که پاسخ سرور با پاسخ قبلی متفاوت باشد. jQuery با نگاه کردن به هدر Last-Modified این موضوع را تأیید می کند. با شروع با jQuery-1.4، علاوه بر Last-Modified، "etag" نیز بررسی می شود (هر دو توسط سرور ارائه می شوند و باید به مرورگر اطلاع دهند که داده های درخواستی از سرور نسبت به درخواست قبلی تغییر نکرده است).

به شما امکان می دهد وضعیت منبع صفحه را روی محلی تنظیم کنید (مثلاً که از پروتکل فایل استفاده می کند)، حتی اگر جی کوئری آن را متفاوت تشخیص دهد. کتابخانه تصمیم می گیرد که صفحه به صورت محلی در مورد پروتکل های زیر راه اندازی شود: file، * -extension، و widget.

توصیه می شود مقدار پارامتر را تنظیم کنید محلی استدر سطح جهانی از تابع $ .ajaxSetup () استفاده می کند، نه در تنظیمات درخواست های آژاکس.

نام پارامتری را که در طول یک درخواست jsonp به url اضافه می‌شود، تعیین می‌کند (به طور پیش‌فرض، از "تکالمه تماس" استفاده می‌شود - "httr: //siteName.ru؟ Callback = ...").

با شروع در jQuery-1.5، مشخص کردن false در این پارامتر از اضافه شدن پارامتر اضافی به url جلوگیری می کند. در این حالت باید مقدار خاصیت jsonpCallback را به صراحت تعیین کنید. به عنوان مثال مانند این: (jsonp: false، jsonpCallback: "callbackName").

نام تابعی را تعریف می کند که زمانی که سرور به درخواست jsonp پاسخ می دهد، فراخوانی می شود. به‌طور پیش‌فرض، jQuery یک نام دلخواه برای این تابع ایجاد می‌کند، که گزینه ارجح برای آسان‌تر کردن کار با کتابخانه است. یکی از دلایلی که شما باید عملکرد خود را برای رسیدگی به درخواست‌های jsonp مشخص کنید، بهبود حافظه پنهان درخواست‌های GET است.

از jQuery-1.5، می توانید تابعی را در این پارامتر مشخص کنید تا پاسخ سرور را خودتان مدیریت کنید. در این حالت، تابع مشخص شده باید داده های دریافتی از سرور را برگرداند (در تابع مشخص شده، آنها در پارامتر اول در دسترس خواهند بود).

به طور پیش‌فرض، تمام داده‌های ارسال شده به سرور از قبل به یک رشته (فرمت URL: fName1 = value1 & fName2 = value2 و ...) مربوط به "application / x-www-form-urlencoded" تبدیل می‌شوند. اگر نیاز به ارسال داده هایی دارید که به این روش قابل پردازش نیستند (مثلاً یک سند DOM)، باید گزینه processData را غیرفعال کنید.

این پارامتر برای درخواست های آژاکس متقابل دامنه از نوع GET استفاده می شود، dataType می تواند "jsonp" یا "script" باشد. رمزگذاری را تعیین می کند که در آن درخواست متقابل دامنه اجرا می شود. اگر سرور در یک دامنه خارجی از رمزگذاری متفاوت با رمزگذاری در سرور دامنه خانگی استفاده می کند، ضروری است.

(این تنظیمات در jQuery-1.5 معرفی شده است)مجموعه ای از جفت ها که در آن کدهای اجرای درخواست با توابعی که در این مورد فراخوانی می شوند نگاشت می شوند. به عنوان مثال، برای یک کد 404 (صفحات وجود ندارند)، می توانید یک پیام را روی صفحه نمایش دهید:

$ .ajax ((statusCode: (404: function () (هشدار ( "صفحه یافت نشد") ; } } } ) ;

توابعی که برای اجرای موفقیت‌آمیز درخواست به کدها پاسخ می‌دهند همان آرگومان‌هایی را دریافت می‌کنند که عملکرد موفقیت‌آمیز یک درخواست را کنترل می‌کنند (مشخص شده در پارامتر موفقیت)، و توابعی که به کدهای خطا پاسخ می‌دهند مانند توابع خطا خواهند بود.

تابعی که در صورت تکمیل موفقیت آمیز درخواست به سرور فراخوانی می شود. سه پارامتر به آن منتقل می شود: داده های ارسال شده توسط سرور و از قبل پردازش شده (که برای dataType مختلف متفاوت است). پارامتر دوم یک رشته با وضعیت اجرا است. پارامتر سوم شامل شی jqXHR است (در نسخه های قبلی کتابخانه (تا 1.5)، XMLHttpRequest به جای jqXHR استفاده می شود). از آنجایی که jQuery-1.5، به جای یک تابع، این پارامتر می تواند آرایه ای از توابع را بگیرد.

زمان انتظار برای پاسخ از سرور است. در میلی ثانیه تنظیم کنید. در صورت تجاوز از این زمان، درخواست با یک خطا تکمیل می شود و یک رویداد خطا (به توضیحات بالا مراجعه کنید) رخ می دهد که وضعیت "تایم اوت" را خواهد داشت.

زمان از لحظه فراخوانی تابع $.ajax شمارش می شود. ممکن است در این لحظه چندین درخواست دیگر راه اندازی شود و مرورگر اجرای درخواست فعلی را به تعویق بیندازد. در این مورد تایم اوتممکن است تکمیل شود، اگرچه در واقع هنوز درخواست حتی شروع نشده است.

در jQuery-1.4 و قبل از آن، هنگامی که زمان منقضی می شود، شی XMLHttpRequest وارد یک حالت خطا می شود و دسترسی به فیلدهای آن ممکن است یک استثنا ایجاد کند. V فایرفاکس 3.0+درخواست‌های اسکریپت و JSONP در صورت اتمام زمان لغو نمی‌شوند. حتی پس از اتمام این زمان نیز تکمیل خواهند شد.

تابعی که یک شی XMLHttpRequest را ارائه می دهد. به طور پیش فرض، برای مرورگرهای IE این شی یک ActiveXObject است، در غیر این صورت XMLHttpRequest است. با این پارامتر می توانید نسخه خود را از این شی جاسازی کنید.

(این تنظیمات در jQuery-1.5.1 معرفی شد)مجموعه ای از جفت (نام: مقدار) برای تغییر / اضافه کردن مقادیر فیلدهای مربوطه شی XMLHttpRequest. به عنوان مثال، می‌توانید ویژگی withCredentials آن را هنگام انجام درخواست بین دامنه‌ای روی true تنظیم کنید:

$ .ajax ((url: a_cross_domain_url, xhrFields: (withCredentials: true)));

V jQuery-1.5ویژگی withCredentials توسط XMLHttpRequest بومی پشتیبانی نمی شود و این فیلد در یک درخواست بین دامنه نادیده گرفته می شود. در تمام نسخه های بعدی کتابخانه، این مشکل برطرف شده است.

گردانندگان رویداد

تنظیمات قبل از ارسال، خطا، dataFilter، موفقیت و کامل (که در قسمت قبل توضیح داده شد) به شما امکان می دهد تا کنترل کننده های رویداد را که در نقاط خاصی از اجرای هر درخواست ajax رخ می دهد، تنظیم کنید.

قبل از ارسال درست قبل از ارسال درخواست به سرور رخ می دهد. خطا در صورت عدم موفقیت درخواست رخ می دهد. فیلتر داده زمانی اتفاق می افتد که داده ها از سرور می رسند. به پردازش داده های خام ارسال شده توسط سرور اجازه می دهد. موفقیت اگر درخواست با موفقیت تکمیل شود رخ می دهد. کامل در صورت تکمیل درخواست رخ می دهد.

نمونه ای از استفاده ساده در صورت موفقیت آمیز بودن درخواست، پیامی نمایش می دهیم:

$ .ajax ((url: "ajax / test.html"، موفقیت: تابع () (هشدار ("بار انجام شد.")));

با شروع با jQuery-1.5، متد $.ajax () یک شی jqXHR را برمی‌گرداند که، در میان چیزهای دیگر، رابط معوق را پیاده‌سازی می‌کند و به شما امکان می‌دهد کنترل‌کننده‌های اجرایی اضافی را تعریف کنید. علاوه بر متدهای معوق استاندارد .done ()، .fail () و .then () که می توانید از آنها برای تنظیم کنترلرها استفاده کنید، jqXHR .success ()، .error () and.complete () را پیاده سازی می کند. این کار برای مطابقت با نام آشنای روش های مورد استفاده برای راه اندازی کنترل کننده ها برای اجرای درخواست های ajax انجام می شود. با این حال، با شروع با jQuery-1.8 این سه روش تبدیل خواهند شد نامطلوب برای استفاده.

برخی از انواع درخواست‌ها، مانند jsonp یا درخواست‌های GET بین دامنه‌ای، از اشیاء XMLHttpRequest پشتیبانی نمی‌کنند. در این حالت، به کنترل‌کننده‌های XMLHttpRequest و textStatus ارسال می‌شود که حاوی مقدار تعریف‌نشده خواهد بود.

در داخل هندلرها، این متغیر حاوی مقدار پارامتر خواهد بود متن نوشته... در صورتی که تنظیم نشده باشد، این شامل شی تنظیمات خواهد بود.

پارامتر DataType

تابع $.ajax () در مورد نوع داده های ارسال شده توسط سرور از خود سرور (با استفاده از MIME) اطلاعات می گیرد. علاوه بر این، می توان شخصاً نشان داد (روشن) چگونه این داده ها باید تفسیر شوند. این کار با استفاده از پارامتر dataType انجام می شود. مقادیر ممکن برای این پارامتر:

"xml" - سند xml حاصل به صورت متنی در دسترس خواهد بود. می توانید با استفاده از ابزارهای استاندارد jQuery (و همچنین با یک سند html) با آن کار کنید. "html" - html حاصل به صورت متنی در دسترس خواهد بود. اگر حاوی اسکریپت هایی در تگ ها باشد

مقالات مرتبط برتر