jQuery एज़क्स - एज़क्स() विधि

उदाहरण

एज़क्स द्वारा एक टेक्स्ट लोड करें:

jQuery 代码:

jQuery कोड:}
  $(document).ready(function(){
  $("#b01").click(function(){htmlobj=$.ajax({url:"/jquery/test1.txt",async:false})
  ;
  $("#myDiv").html(htmlobj.responseText);
$("#myDiv").html(htmlobj.responseText);

});

HTML कोड:
<div id="myDiv"><h2>Let AJAX change this text</h2></div>

<button id="b01" type="button">Change Content</button>

जीवंत प्रयोग करें

वर्णन और उपयोग

ajax() विधि HTTP अनुरोध के द्वारा दूरस्थ डाटा को लोड करती है।

यह विधि jQuery के अन्तर्गत AJAX का अवधारण है।उच्च स्तरीय अवधारण जैसे $.get, $.post आदि को सरल और उपयोगी बनाया गया है।$.ajax() द्वारा बनाया गया XMLHttpRequest ऑब्जेक्ट वापस करता है।अधिकांश स्थितियों में आपको इस फ़ंक्शन को सीधे संचालित करने की आवश्यकता नहीं है, जब तक कि आप असामान्य विकल्पों को संचालित करना चाहते हैं तथा अधिक स्वाधीनता प्राप्त करना चाहते हैं।

ध्यान दें:सभी विकल्प अभी तक $.ajaxSetup() फ़ंक्शन के द्वारा वैश्विक रूप से सेट किए जा सकते हैं।सबसे सरल स्थिति में, $.ajax() को किसी भी पारामीटर के बिना सीधे इस्तेमाल किया जा सकता है।

व्याकरण

jQuery.ajax([settings]
पारामीटर वर्णन
settings

वैकल्पिक।AJAX अनुरोध को कॉन्फ़िगर करने के लिए चाहे वाले निर्देशाकों के समूह।

किसी भी विकल्प का मूलभूत मान $.ajaxSetup() के द्वारा सेट किया जा सकता है।

पारामीटर

options

प्रकार: Object

वैकल्पिक।AJAX अनुरोध सेटिंग।सभी विकल्प वैकल्पिक हैं।

async

टाइप: बूलीन

मूलभूत मान: true।मूलभूत सेटिंग में, सभी अनुरोध एसिंक्रोनस हैं।यदि आप सिंक्रोनस अनुरोध भेजना चाहते हैं, तो इस विकल्प को false सेट करें।

ध्यान दें कि सिंक्रोनस अनुरोध ब्राउज़र को बंद कर देता है, उपयोगकर्ता के अन्य काम करने के लिए अनुरोध पूरा होने की जरूरत है।

beforeSend(XHR)

टाइप: फ़ंक्शन

अनुरोध भेजने से पहले XMLHttpRequest ऑब्जेक्ट को संशोधित करने वाली फ़ंक्शन, जैसे कि स्वयंचलित HTTP शीर्षक जोड़ने के लिए।

XMLHttpRequest ऑब्जेक्ट एकमात्र पारामीटर है।

यह एक Ajax इवेंट है।यदि वापस false दिया जाए तो इस बार का ajax अनुरोध रद्द किया जाएगा।

कैश

टाइप: बूलीन

मूलभूत मान: true, dataType जब एस्क्रिप्ट और jsonp हो तो मूलभूत मान false होता है।false सेट करने से इस पृष्ठ को कैश करने की आदेश नहीं दिया जाएगा।

jQuery 1.2 नए फ़ीचर्स।

complete(XHR, TS)

टाइप: फ़ंक्शन

अनुरोध पूर्ण होने के बाद कॉलबैक फ़ंक्शन (अनुरोध सफल होने या असफल होने के बाद दोनों में आउट).

पैरामीटर: XMLHttpRequest ऑब्जेक्ट और अनुरोध के प्रकार को वर्णित करने वाली इंटरस्ट्रिंग.

यह एक Ajax इवेंट है。

contentType

टाइप: स्ट्रिंग

डिफ़ॉल्ट मान: "application/x-www-form-urlencoded". सर्वर को डेटा भेजने के लिए सामग्री कोडिंग प्रकार.

डिफ़ॉल्ट मान अधिकांश मामलों के लिए उपयुक्त है. अगर आपको एक content-type को $.ajax() को स्पष्ट रूप से पास किया जाता है, तो यह सर्वर को भेजा जाता है (भले ही डेटा भेजने की आवश्यकता नहीं हो).

context

प्रकार: Object

यह ऑब्जेक्ट Ajax से संबंधित कॉलबैक फ़ंक्शनों के लिए सेट करने के लिए उपयोग किया जाता है. यानी, कॉलबैक फ़ंक्शन के अंदर this को इस ऑब्जेक्ट की ओर दिशा देता है (यदि इस पैरामीटर को निर्दिष्ट नहीं किया जाता, तो this को असली AJAX अनुरोध के दौरान पास किए गए options पैरामीटर की ओर दिशा देता है). उदाहरण के लिए, एक DOM एलीमेंट को context पैरामीटर के रूप में निर्दिष्ट करने के द्वारा, success कॉलबैक फ़ंक्शन के सेट करने के लिए इसका उपयोग किया जाता है.

इस तरह:

$.ajax({ url: "test.html", context: document.body, success: function(){
        $(this).addClass("done");
      }});
data

टाइप: स्ट्रिंग

सर्वर को भेजे गए डेटा. यह स्वयंक्रिया सही अनुरोध फार्मेट में बदल दिया जाता है. GET अनुरोध में यह URL के बाद जोड़ा जाता है. processData विकल्प के वर्णन को देखें ताकि इस स्वयंक्रिया बदलाव को निष्क्रिय कर सकें. यह अनिवार्यता Key/Value फार्मेट है. यदि यह एक एक्सेस तीसरा नहीं है, jQuery असली वल्यू के लिए एक ही नाम को जोड़ देगा. जैसे {foo:["bar1", "bar2"]} इस प्रकार बदल दिया जाता है: '&foo=bar1&foo=bar2'.

dataFilter

टाइप: फ़ंक्शन

Ajax वापसी असली डेटा के लिए पूर्व प्रसंस्करण करने वाली फ़ंक्शन. data और type दो पैरामीटर प्रदान करता है: data Ajax वापसी असली डेटा है, type jQuery.ajax के दौरान प्रदान किए गए dataType पैरामीटर है. फ़ंक्शन द्वारा वापस दिए गए मान को jQuery द्वारा आगे कार्यान्वित किया जाता है.

dataType

टाइप: स्ट्रिंग

अपेक्षित सर्वर वापसी डेटा प्रकार. यदि निर्दिष्ट नहीं किया जाता, jQuery स्वयंक्रिया सही जानकारी आईएमई जानकारी के आधार पर जानकारी देखता है, जैसे XML MIME प्रकार को XML के रूप में पहचाना जाता है. 1.4 में, JSON को एक जेविस्क्रिप्ट ऑब्जेक्ट बनाया जाता है, और script इस स्क्रिप्ट को चलाया जाता है. फिर सर्वर के वापसी डेटा इस मान को अनुवाद करके, कॉलबैक फ़ंक्शन को पास किया जाता है. उपलब्ध मान इस प्रकार है:

  • "xml": XML दस्तावेज़ वापस करें, जिसे jQuery संसाधित कर सकता है।
  • "html": शुद्ध पाठ HTML संदेश वापस करें; शामिल script टैग डोम में जोड़े जाने के समय चलेंगे।
  • "script": शुद्ध पाठ JavaScript कोड वापस करें। अपने आप रखरखाव नहीं करेगा। जब "cache" पारामीटर सेट किया गया है तो ही। नोट: दूरस्थ अनुरोध के दौरान (एक ही डोमेन में नहीं), सभी POST अनुरोधों को GET अनुरोधों में बदल दिया जाएगा (क्योंकि DOM के script टैग को उपयोग करके लोड किया जाएगा)।
  • "json": JSON डाटा वापस करें।
  • "jsonp": JSONP फ़ॉर्म। JSONP फ़ॉर्म में फ़ंक्शन को बुलाते समय, जैसे "myurl?callback=?" jQuery स्वतः ? को सही फ़ंक्शन नाम से प्रतिस्थापित करेगा, ताकि कॉलबैक फ़ंक्शन कार्य कर सके।
  • "text": शुद्ध पाठ शब्द चोटी दें
error

टाइप: फ़ंक्शन

मूलभूत मान: स्वतः का निर्णय (xml या html)। अनुरोध विफल होने पर इस फ़ंक्शन को बुला दें।

इसमें तीन पारामीटर हैं: XMLHttpRequest ऑब्जेक्ट, त्रुटि संदेश, (वैकल्पिक) कैच की गई असामान्य वस्तु।

यदि त्रुटि हुई है, तो त्रुटि संदेश (दूसरा पारामीटर) null के अलावा, "timeout", "error", "notmodified" और "parsererror" हो सकता है।

यह एक Ajax इवेंट है。

global

टाइप: बूलीन

क्या वैश्विक AJAX कार्यक्रम को ट्रिगर करें। मूलभूत मान: true। false सेट करने से वैश्विक AJAX कार्यक्रम को ट्रिगर नहीं किया जाएगा, जैसे ajaxStart या ajaxStop को विभिन्न AJAX कार्यक्रम को नियंत्रित करने के लिए प्रयोग किया जा सकता है।

ifModified

टाइप: बूलीन

केवल सर्वर डाटा बदलने पर नई डाटा प्राप्त करें। मूलभूत मान: फॉल्स। HTTP पैकेट Last-Modified शीर्षक जानकारी का प्रयोग करके निर्णय करें। jQuery 1.4 में, यह सर्वर द्वारा निर्दिष्ट 'etag' को भी जांच करता है ताकि डाटा को हस्तांतरित न किया जाए।

jsonp

टाइप: स्ट्रिंग

एक jsonp अनुरोध में कॉलबैक फ़ंक्शन के नाम को पुनर्लिखित करें। यह मानदंड "callback=?" इसे GET या POST अनुरोध में URL पारामीटर के भीतर "callback" भाग के लिए प्रयोग किया जाता है, जैसे {jsonp:'onJsonPLoad'} "onJsonPLoad=?" सर्वर को भेज देगा।

jsonpCallback

टाइप: स्ट्रिंग

jsonp अनुरोध के लिए एक कॉलबैक फ़ंक्शन नाम निर्दिष्ट करें।यह मानक जीक्वेरी उपयोग में उत्पन्न एक अनान्य फ़ंक्शन नाम को बदलेगा।यह मुख्य रूप से जीक्वेरी फ़ंक्शन नाम को अनूठा बनाने, यह अनुरोधों का प्रबंधन करना आसान बनाता है, यह बुलीबैक फ़ंक्शन और त्रुटि संभाल करना आसान बनाता है।आप यह कॉलबैक फ़ंक्शन नाम भी चुन सकते हैं, ताकि ब्राउज़र गेट अनुरोधों को कैशे कर सके。

password

टाइप: स्ट्रिंग

HTTP ऑब्जेक्ट पहचान अनुरोध के लिए पासवर्ड का उपयोग करता है

processData

टाइप: बूलीन

डिफ़ॉल्ट मूल्य: true।डिफ़ॉल्ट मामले में, data विकल्प के द्वारा पास किए गए डाटा, यदि यह एक आबद्ध (टेक्निकल रूप से केवल न स्ट्रिंग) है, तो इसे एक क्वेरी स्ट्रिंग में बदल दिया जाता है, ताकि डिफ़ॉल्ट सामग्री टाइप "application/x-www-form-urlencoded" के साथ तालमेल करे।यदि आप DOM ट्री डाटा या अन्य बदलने नहीं चाहते डाटा को भेजना चाहते हैं, तो इसे false सेट करें。

scriptCharset

टाइप: स्ट्रिंग

यह तभी उपयोग किया जाता है जब dataType "jsonp" या "script" हो और type "GET" है।यह आमतौर पर स्थानीय और दूरस्थ सामग्री कोडिंग अलग होने पर उपयोग किया जाता है।

success

टाइप: फ़ंक्शन

अनुरोध सफल होने पर बुलीबैक फ़ंक्शन

पारामीटर: सर्वर से वापस मिलने वाला डाटा; स्थिति का वर्णन करने वाला स्ट्रिंग

यह एक Ajax इवेंट है。

traditional

टाइप: बूलीन

यदि आप पारंपरिक तरीके से डाटा को श्रृंखलाबद्ध करना चाहते हैं, तो इसे true सेट करें।जीक्वेरी पूँजीगत विभाग के नीचे जीक्वेरी.param मथडल को देखें।

timeout

टाइप: नंबर

अनुरोध के लिए टाइमआउट (मिलीसेकंड) सेट करें।यह सेटिंग वैश्विक सेटिंग को ओवरराइड करेगा。

type

टाइप: स्ट्रिंग

डिफ़ॉल्ट मूल्य: "GET")।अनुरोध शैली ("POST" या "GET"), डिफ़ॉल्ट "GET" है।ध्यान दें: अन्य HTTP अनुरोध शैली, जैसे PUT और DELETE भी उपयोग की जा सकती हैं, लेकिन केवल कुछ ब्राउज़रों में ही समर्थित हैं。

url

टाइप: स्ट्रिंग

डिफ़ॉल्ट मूल्य: वर्तमान पृष्ठ का पता।अनुरोध भेजने का पता。

username

टाइप: स्ट्रिंग

HTTP ऑब्जेक्ट पहचान अनुरोध के लिए उपयोग किए जाने वाले उपयोगकर्ता नाम का उपयोग करता है。

xhr

टाइप: फ़ंक्शन

आपको एक XMLHttpRequest ऑब्जेक्ट वापस करना है।मूलभूत रूप से IE में ActiveXObject है और अन्य सभी मामलों में XMLHttpRequest है।यह XMLHttpRequest ऑब्जेक्ट को पुनर्लेखन करने या एक बेहतर XMLHttpRequest ऑब्जेक्ट प्रदान करने के लिए उपयोग किया जाता है।जीक्वेरी 1.3 से पहले यह पारामीटर उपलब्ध नहीं था。

कॉलबैक फ़ंक्शन

यदि $.ajax() से प्राप्त डाटा को प्रसंस्कृत करना है, तो beforeSend, error, dataFilter, success, complete कॉलबैक फ़ंक्शन का उपयोग करना है।

beforeSend

अनुरोध भेजने से पहले बुलाया जाता है। XMLHttpRequest को पास करते हैं।

error

अनुरोध में त्रुटि होने पर बुलाया जाता है। XMLHttpRequest ऑब्जैक्ट, त्रुटि क़िस्म को वर्णित करने वाली चरण की विशेषता और (उपलब्ध होने पर) एक अपवांछ ऑब्जैक्ट को पास करते हैं।

dataFilter

अनुरोध सफल होने के बाद इस फ़ंक्शन को बुलाया जाता है। पास किए गए डाटा और "dataType" पैरामीटर के मूल्य को पास करते हैं। और नए डाटा को (संभवतः प्रसंस्कृत) success कॉलबैक फ़ंक्शन को पास करना है।

success

अनुरोध के बाद बुलाया जाता है। पास किए गए डाटा और सफलता कोड वाली चरण की विशेषता को पास करते हैं।

complete

जब अनुरोध पूरा होने के बाद इस फ़ंक्शन को बुलाया जाता है, चाहे सफल या असफल हो। XMLHttpRequest ऑब्जैक्ट पास करते हुए एक चरण की विशेषता को पास करते हैं और एक सफलता कोड वाली चरण की विशेषता को पास करते हैं।

डाटा टाइप

$.ajax() फ़ंक्शन सर्वर द्वारा उपलब्ध जानकारी के आधार पर डाटा का निर्वाह करता है। यदि सर्वर रिपोर्ट करता है कि डाटा XML है, तो रिपोर्ट का परिणाम सामान्य XML विधियों या jQuery के चयनकर्ताओं के द्वारा चलाया जा सकता है। अन्य टाइप, जैसे HTML, देखा गया तो डाटा टेक्स्ट के रूप में विचार किया जाता है।

dataType विकल्प के माध्यम से अन्य डाटा प्रसंस्करण तरीकों को निर्दिष्ट किया जा सकता है। छाया से अलग, html, json, jsonp, script या text को निर्दिष्ट किया जा सकता है।

उसमें, text और xml टाइप के डाटा नियंत्रित नहीं किया जाता है। डाटा सिर्फ सरलता से XMLHttpRequest के responseText या responseHTML गुण को success कॉलबैक फ़ंक्शन को पास किया जाता है।

ध्यान दें:हमें यह सुनिश्चित करना होगा कि वेब सर्वर द्वारा रिपोर्ट की जाने वाली MIME टाइप हमारे चयन किए गए dataType से मेल खाती है। उदाहरण के लिए, XML के मामले में, सर्वर द्वारा text/xml या application/xml का घोषणा करना होगा ताकि समान परिणाम प्राप्त किया जा सके।

यदि हैड टाइप निर्दिष्ट किया गया है, तो शार्परियों का कार्य हैड के रूप में एक स्ट्रिंग वापस करने से पहले कर दिया जाएगा। समान रूप से, स्क्रिप्ट टाइप निर्दिष्ट करने के बाद, सर्वर द्वारा उत्पादित जावास्क्रिप्ट को फिर से चलाया जाएगा और फिर स्क्रिप्ट को एक टेक्स्ट डाटा के रूप में वापस किया जाएगा।

यदि json विधि को निर्धारित किया गया है, तो प्राप्त की गई डाटा को एक JavaScript ऑब्जेक्ट के रूप में पारस्परिक किया जाएगा, और बनाया गया ऑब्जेक्ट को परिणाम के रूप में वापस किया जाएगा।इस उद्देश्य को पूरा करने के लिए, यह पहले JSON.parse() का इस्तेमाल करता है।यदि ब्राउज़र JSON.parse() का इस्तेमाल नहीं करता, तो एक फ़ंक्शन का इस्तेमाल करता है।

JSON डाटा JavaScript के द्वारा आसानी से पारस्परिक किया जा सकने वाला संरचित डाटा है।यदि प्राप्त की गई डाटा फ़ाइल रिमोट सर्वर पर संग्रहीत है (उदाहरण के लिए, दूसरे डोमेन, यानी क्रॉस-डोमेन) तो jsonp विधि का इस्तेमाल करना चाहिए।इस विधि का इस्तेमाल करने पर, callback=? को अनुरोध के URL के बाद जोड़ दिया जाएगा।सर्वर को JSON डाटा के पहले कॉलबैक फ़ंक्शन का नाम जोड़ना चाहिए, ताकि एक मान्य JSONP अनुरोध पूरा हो।यदि कॉलबैक फ़ंक्शन के नाम को डिफ़ॉल्ट callback के स्थान पर निर्धारित करना चाहते हैं, तो $.ajax() के jsonp पैरामीट को सेट कर सकते हैं।

ध्यान दें:JSONP JSON के रूप में एक विस्तार है।यह कुछ सर्वर ओवर साइड कोड की आवश्यकता करता है, जो क्यूरी स्ट्रिंग पैरामीट को निरीक्षण और संसाधन करता है।

यदि script या jsonp विधि को निर्धारित किया गया है, तो सर्वर से डाटा प्राप्त करते समय वास्तव में <script> टैग का इस्तेमाल किया जाता है, नहीं कि XMLHttpRequest ऑब्जेक्ट।इस स्थिति में, $.ajax() XMLHttpRequest ऑब्जेक्ट को नहीं वापस करता है, और घटना प्रशासक, जैसे beforeSend, भी नहीं भेजता है।

डाटा सर्वर को भेजना

डिफ़ॉल्ट में, Ajax अनुरोध GET विधि का इस्तेमाल करता है।यदि आप POST विधि का इस्तेमाल करना चाहते हैं, तो type पैरामीट का मान निर्धारित कर सकते हैं।यह विकल्प data विकल्प के साथ साथ सर्वर को डाटा कैसे भेजा जाएगा इस पर भी प्रभाव डालता है।

डेटा विकल्प एक पूर्वीय वाक्यच्छेद को शामिल कर सकता है, जैसे key1=value1&key2=value2, या एक मैपिंग, जैसे {key1: 'value1', key2: 'value2'}।यदि आप दूसरे के रूप में इस्तेमाल करते हैं, तो डाटा प्रेष्यकर्ता द्वारा क्यूरी स्ट्रिंग में बदल दिया जाएगा।यह प्रक्रिया processData विकल्प को false रखकर भी छोड़ सकते हैं।यदि हम एक XML ऑब्जेक्ट को सर्वर को भेजना चाहते हैं, तो इस प्रक्रिया के लिए यह सही नहीं है।इस स्थिति में, हमें contentType विकल्प का मान बदलना चाहिए, और डिफ़ॉल्ट application/x-www-form-urlencoded के स्थान पर अन्य सही MIME टाइप का इस्तेमाल करना चाहिए।

उच्चस्तरीय विकल्प

global विकल्प का उपयोग उत्तरदायी रिपोर्ट किए गए कॉलबैक फ़ंक्शनों, जैसे .ajaxSend, या ajaxError, और ऐसे अन्य तरीकों को रोकने के लिए किया जाता है।इसका उपयोग कुछ समयों में काफी ही उपयोगी होता है, जैसे बहुत बार बहुत तेजी से अनुरोध भेजे जाते हैं और इसके बाद यह अनुरोध .ajaxSend में निष्क्रिय कर सकता है।

यदि सर्वर HTTP प्रमाणीकरण करना चाहता है, तो उपयोगकर्ता नाम और पासवर्ड को username और password विकल्प के माध्यम से सेट कर सकता है।

Ajax अनुरोध अक्षम है, इसलिए गलती चेतावनी को पकड़ा जाता है और प्रबंधित किया जाता है, इससे उपयोगकर्ता अनुभव को बेहतर किया जा सकता है।अनुरोध अक्षम होने का पैरामीट आमतौर पर अपने डिफ़ॉल्ट मान के रूप में रहता है, या फिर jQuery.ajaxSetup के माध्यम से वैश्विक रूप से सेट किया जाता है, बहुत कम किसी विशिष्ट अनुरोध के लिए timeout विकल्प को दोबारा सेट किया जाता है।

डिफ़ॉल्ट में, अनुरोध हमेशा भेजा जाता है, लेकिन ब्राउज़र इसके कैशे से डाटा ले सकता है।कैश का उपयोग नहीं करने के लिए, cache पैरामीट को false सेट कर सकते हैं।यदि आप डाटा को पिछले अनुरोध के बाद बदला नहीं हुआ है तो यह रिपोर्ट करना चाहते हैं तो ifModified को true सेट कर सकते हैं।

scriptCharset एक विशेष चारकीट देता है, जो <script> टैग के अनुरोध को सेट करता है, जो script या jsonp जैसे डाटा के लिए उपयोग किया जाता है।जब स्क्रिप्ट और पृष्ठ चारकीट अलग होते हैं तो यह विशेष रूप से उपयोगी होता है।

Ajax का पहला अक्षर asynchronous का है, जिसका मतलब है कि सभी कार्य समय-समय पर ही होते हैं, पूरा होने की कोई क्रमवारता नहीं है।$.ajax() का async पैरामीट हमेशा true के रूप में सेट किया जाता है, जिससे इसका अर्थ है कि अनुरोध शुरू होने के बाद, अन्य कोड भी चलता रहता है।इस विकल्प को false करने से मना किया जाता है, जिसका अर्थ है कि सभी अनुरोध असंभावित नहीं होते, यह भी ब्राउज़र को बंद कर सकता है।

$.ajax फ़ंक्शन उस XMLHttpRequest ऑब्जेक्ट को वापस करता है जो उसे बनाता है।आमतौर पर jQuery केवल अंदरीनी काम करता है और इस ऑब्जेक्ट को बनाता है, लेकिन उपयोगकर्ता अपने बनाए गए xhr ऑब्जेक्ट को xhr विकल्प के माध्यम से पास कर सकता है।वापस की गई ऑब्जेक्ट आमतौर पर फेंक दी जाती है, लेकिन इससे निचले स्तर की इंटरफ़ेस को देखने और कब्जा करने के लिए एक अधिकारिक इंटरफ़ेस प्रदान करता है।उदाहरण के लिए, ऑब्जेक्ट पर .abort() को कॉल करके अनुरोध को पूरा होने से पहले रोक सका जाता है।