JQuery Ajax Ստացեք տվյալներ մեկ այլ տիրույթից: Խաչմերուկի Ajax JQuery- ի հետ

Դեկտեմբերի 2-ին: , 2016

Մի անգամ գրել եմ հոդված, թե ինչպես ստեղծել ներկառուցված վիդջեթներ հայրենի JavaScript- ի եւ PHP- ի վրա: Եվ ամեն ինչ լավ կլիներ, բայց մի պահ չի ազդել դրա վրա: Նման հարմարանքները կարող են օգտագործվել մեր սեփական կայքում, բայց ավելի հետաքրքիր են դրանք ստեղծել երրորդ կողմի ռեսուրսների համար: Բայց այս դեպքում ցանկալի տվյալների զննարկիչը պետք է բեռի մեկ այլ տիրույթից. Սա խաչմերուկի Ajax- ի պահանջներից է:

Առաջնային ծրագրավորողների տեսակետից խաչմերուկի դիմումները չեն տարբերվում սովորականից: Բայց Bekend- ի վրա կա տարբերություն: Ինչու նրանց հետ ամեն ինչ այնքան էլ պարզ է եւ ինչպես իրականացնել դրանք - կարդացեք դրա մասին հոդվածում:

Մենք փորձում ենք տվյալներ ստանալ մեկ այլ տիրույթից

Պարզության համար հաշվի առեք դիմումները: Ենթադրենք, որ սերվերը ստում է որոշակի HTML ֆայլ, որն է մեզ մոտ, թե ինչպես ներբեռնել Ajax-Ohm- ը մեկ այլ տիրույթից: HTML: Բացեք այն եւ համոզվեք, որ այն իսկապես մատչելի է - (բացվում է նոր ներդիրի մեջ): Սա սովորական բաժանում է «Բովանդակությունը Template.html» տեքստով:

Եվ հիմա եկեք ստանանք այս HTML-KU AJAX-OHM- ն ուղղակիորեն զննարկչի վահանակից:

Մենք չենք կարի հայրենի JavaScript- ի հետ եւ խնդրանքով վարվելով JQuery.get () օգտագործմամբ եւ բերեք վահանակի, թե ինչ են նրանք ստացել սերվերից:

$ .. HTML ", գործառույթ (Responce) (Responce)));

Այժմ բացեք մշակող գործիքները զննարկչի եւ վահանակների ներդիրում, կատարեք այս խնդրանքը:

Դուք կտեսնեք հետեւյալի մասին

Ամեն ինչ հիանալի է, հարցում ուղարկեց, ստացավ պատասխան: Թվում է, թե դա կարող է ավելի հեշտ լինել: Եվ հիմա գնացեք ցանկացած այլ կայք, որտեղ JQuery- ը միացված է եւ փորձում է նույնը անել: Միայն HTTPS- ի կայքում ոչ թե ինչու է սովորել հոդվածի վերջում:

Օրինակ, ես ստուգում էի ռմբակոծության հարցում: Եվ միեւնույն ժամանակ նա ազատ է արձակվել, թե որ աղբը չի ընկնում դավանանքի մեջ նույնիսկ նման հայտնի վայրերում: Այնուամենայնիվ, խոսակցությունը այդ մասին չէ:

Հարցում կատարեք մեկ այլ տիրույթից եւ կտեսնեք, որ վահանակն այլեւս այդպիսի կոպիտ պատկեր չէ: Ասում է, անհնար է ներբեռնել, ոչ մի տվյալ եւ ընդհանուր վշտի:

Եթե \u200b\u200bդուք բացեք ցանցի ներդիրը եւ այնտեղ գտնեք համապատասխան հարցում, կտեսնեք, որ սերվերը նույնիսկ մեզ է վերադարձել 200-ին
Եվ չկա բովանդակության ֆայլ: Ինչ է բռնել

Ինչը սխալվեց եւ որն է լինելու որոշումը

Բռնումն այն է, որ ինտերնետային քաղաքականությունը թույլ չի տալիս զննարկիչներին հանել տվյալները ցանկացած ռեսուրսներից: Բացի այն դեպքերի, երբ այս ռեսուրսներն իրենք հետաքրքրում են հատուկ տվյալներ բաժանելով:
Մեր գործը այդպիսին է: Որպեսզի ֆայլը պահանջելիս ցանկանում եք HTML ֆայլը օգտագործել ցանկացած վայրից, ցանկանում եք ուղարկել մուտքի հսկիչ-թույլտվություն-ծագում HTTP վերնագիր:

Այժմ հարցն այն է, թե ինչպես դա անել: Եթե \u200b\u200bդուք (կամ ադմինիստրատորներ) մուտք ունեք Nginx- ից, ապա մի կերպ `այս վերնագրի աղտոտումը վեբ սերվերի գործիքներին կազմաձեւելու համար: Դուք գնում եք ադմինիստրատորի կողմից համապատասխան պահանջով կամ Google- ին ձեր վեբ սերվերի ցանկալի կազմաձեւերը:

Եթե \u200b\u200bչկա այս մուտքը, օրինակ, օրինակ, գրեթե ցանկացած հյուրընկալող մատակարարում էժան սակագին, ապա պետք է ինքներդ դուրս գալ: Եվ ահա PHP- ն գալիս է փրկարար: Գաղափարն այն է, որ մեր HTML-KU- ն գցեք PHP ֆայլ, որը ծնվում է վերնագրով եւ կտա ցանկալի բովանդակությունը:

Ստացվում է, որ դուք ստեղծում եք ֆայլի ձեւանմուշը: PHP- ն եւ առաջին լարը Գրեք PHP հրամանը

Վերնագիր («Մուտքի հսկողություն-թույլտվություն-ծագում. *»);

Բովանդակություն template.php- ից:

Այսինքն, ձեւանմուշի բովանդակությունը կլինի այդպես, մի \u200b\u200bմոռացեք PHP-թեւերի եւ փակագծերի մասին

WebDevkin- ում ֆայլը ստեղծվում եւ ստում է (բացվում է նոր ներդիրում): Եկեք հիմա փորձենք այն պահանջել մեկ այլ տիրույթից եւ տեսնել, թե ինչ կլինի

$ .. PHP ", գործառույթ (պատասխան));

Ինչպես տեսնում եք, ամեն ինչ լավ է աշխատում. Ֆայլը բեռնված է:

Նայեք ցանցի ներդիրին:
Խնդրում ենք նկատի ունենալ, որ մուտքի վերահսկման թույլտվության ծագման վերնագիրը հետաքրքրված է պատասխանների վերնագրերով:

Ընդհանուր առմամբ, հոդվածն ավարտված է: Մնում է մտքեր հավաքել փունջով եւ ավելացնել մի քանի այլ տեղեկություններ:

Ամփոփեք եւ ամփոփեք

  • 1. Հնարավոր չէ հեշտությամբ պահանջել Ajax ցանկացած ռեսուրս մեկ այլ տիրույթից
  • 2. Ուղարկեք մուտքի վերահսկման թույլտվության ծագման վերնագիր բոլոր ռեսուրսների համար, որոնց անհրաժեշտությունը կարող է անհրաժեշտ լինել:
  • 3. Դա արեք վեբ սերվերի կամ PHP- ի հետ
  • 4. PHP- ի վրա այս վերնագիրն ուղարկվում է վերնագրի հրամանատարությամբ («Մուտքի հսկողություն-թույլտվություն. *»)
  • 5. Մուտքի հսկողություն-թույլտվություն-ծագում. * - Թույլ տվեք մուտք գործել բոլոր տիրույթները, մուտքի վերահսկման թույլտվության-ծագումը. SITE.RU - միայն տիրույթ
  • 6. Մուտքի վերահսկման թույլտվության ծագումը ուղարկվում է PHP ֆայլի հենց սկզբում, նույնիսկ այլ տվյալների արդյունքից առաջ (ինչպես նաեւ ցանկացած այլ HTTP վերնագիր)
  • 7. «Ռեսուրս» -ը ոչ միայն HTML նշագրմամբ ֆայլ է, այլեւ ցանկացած URL, որին Ajax- ի խնդրանքը գալիս է, օրինակ, տվյալների բազայի սեղանի համար տող ավելացնելու համար

Եվ վերջինը, որն իրականացվում է առանձին: Ես չէի ձգտում կատարել HTTP կայքից պահանջներ: HTTPS- ի միջոցով հնարավոր չի լինի բեռնավորել տվյալները HTTP- ից `մեկ այլ պատճառով` խառը բովանդակություն: Եվ կայքը դեռ HTTP կայք է ( Թարմացվել է. Այլեւս չի հետաձգվում կայքը HTTPS- ի վրա)

Սա այն է, ինչ կտեսնեք վահանակում, փորձելով կատարել նույն հարցումը ցանկացած HTTPS կայքից: Հետեւաբար, եթե դուք պատրաստվում եք ներգրավվել ներկառուցված վիդեոններով կամ նման բան, դուք անպայման պետք է ձեր կայքում տեղադրեք SSL վկայագիր:

jquery.ajax () - հարցում է կատարում սերվերին, առանց էջը վերագործարկելու: Սա ցածր մակարդակի մեթոդ է: մեծ քանակություն կարգավորումներ. Այն հիմնված է բոլոր Ajax- ի աշխատանքի վրա, ինչը հաճախ ավելի հեշտ է հասկանալ եւ օգտագործել, բայց որը դեռեւս սահմանափակ գործառույթ է տալիս այս մեթոդի համեմատ:

$ .ajax () վերադարձնում է XMLHTTPREQUEST օբյեկտը: Շատ դեպքերում ձեզ հարկավոր չէ ուղղակիորեն աշխատել այս օբյեկտի հետ, բայց այն դեռ հասանելի է, եթե անհրաժեշտ է ձեռքով ընդհատել հայցը:

Որպես փաստարկ, գործառույթը $ .ajax () փոխանցվում է օբյեկտ, որը բաղկացած է մի զույգ առանցքային / արժեքից, որն օգտագործվում է հարցումը նախաստորագրելու եւ կառավարման համար:

Ajax- ի խնդրանքն ունի երկու օգտագործման տարբերակ.

jquery.ajax (URL [, կարգավորումներ])

Մեթոդի նախորդ վարկածի տարբերությունը բաղկացած է միայն այն բանի, որ այստեղ URL գույքը պարամետրերի մի մասն է, եւ ոչ թե առանձին պարամետր:

Կարգավորումների ցուցակ (պարամետրեր)

  1. Ընդունում է:(Լռելյայն. Կախված է տվյալների շտեմից)
    Տեսակը, օբյեկտ:
    Հարցումը կատարելիս վերնագրերը (վերնագիր) նշում են սերվերից սպասվող բովանդակության թույլատրելի տեսակները: Այս տեսակների արժեքները կվերցվեն ընդունված պարամետրից: Օրինակ, հետեւյալ օրինակը ցույց է տալիս Customtype- ի թույլատրելի տեսակները.

    $ .AJAX (((ընդունում է. «MyCustomtype.« Դիմում / X-Women-Type »), փոխարկիչներ.

    $ Ajax ((

    Ընդունում է. (

    myCustomtype: «Դիմում / X-Some-Custom-Type»

    Փոխարկիչներ. (

    "TEXT MYCUSTOMTYPE": գործառույթ (արդյունք) (

    Վերադարձեք newResult;

    dATATYPE. «MYCUSTOMTYPE»

    } ) ;

  2. async. (Լռելյայն. True իշտ է)
    Տեսակը, տրամաբանական արժեք:
    Լռելյայն, բոլոր պահանջները ուղարկվում են ասինխրոն (այսինքն `սերվերին հարցում ուղարկելուց հետո էջը չի դադարեցնում իր աշխատանքը` պատասխանելիս սպասելիս): Եթե \u200b\u200bՁեզ անհրաժեշտ է հարցումներ ուղարկել համաժամանակյա, այս տարբերակը կեղծեք: «JSONP» տեսակի խաչմերուկի պահանջներն ու պահանջները չեն կարող իրականացվել համաժամանակյա ռեժիմով: Խնդրում ենք նկատի ունենալ, որ համաժամանակյա հարցումները կարող են արգելափակել զննարկիչը կատարման ժամանակ:
  3. beforesert (JQXHR, պարամետրեր)
    Տեսակը, գործառույթ:
    Պարունակում է մի գործառույթ, որը կկոչվի անմիջապես նախքան AJAX հայցը սերվերին ուղարկելը: Այս գործառույթը կարող է օգտակար լինել JQXHR օբյեկտը փոփոխելու համար (in Վաղ տարբերակներ Գրադարաններ (մինչեւ 1,5), JQXHR- ի փոխարեն օգտագործում են XmlhttpRequest): Օրինակ, դուք կարող եք փոխել / նշել անհրաժեշտ վերնագրերը (վերնագիր) I.D. JQXHR օբյեկտը կփոխանցվի առաջին փաստարկի գործառույթին: Երկրորդ փաստարկը փոխանցում է հարցման պարամետրերը:
    Fforeesend- ը վերաբերում է Ajax- ի իրադարձություններին: Հետեւաբար, եթե դրա մեջ նշված գործառույթը կրկնօրինակվի, «Այաքսի» հարցումը չեղյալ կհայտարարվի: Նուֆֆեկտիվը կոչվում է անկախ հարցման տեսակից:
  4. Քեշ (Լռելյայն. True իշտ է, կեղծ տվյալների «Սցենարի» եւ «JSOP»)
    Տեսակը, տրամաբանական արժեք:
    Եթե \u200b\u200bցանկանում եք, որ զննարկիչը չի պահում հարցումը, ապա այս պարամետրը կեղծեք: Խնդրում ենք նկատի ունենալ, որ եթե պարամետրը կեղծվի, «_ \u003d» տողը կավելացվի URL- ին:
  5. Լրացրեք (JQXHR, TEXTSTATA)
    Տեսակը, գործառույթ:
    Գործառույթ, որը կատարվում է «Այաքսի» հարցումն ավարտելուց ամեն անգամ (ավարտվելուց հետո հաջողությունից եւ սխալից հետո): Գործառույթին փոխանցվում է երկու պարամետրեր. JQXHR (գրադարանի վաղ տարբերակներում (մինչեւ 1,5), փոխարենը, JQXHR- ն օգտագործում է XMLHTTPREQUEST) եւ հարցման կատարման կարգավիճակը », -« Հաջողություն »,« Սխալ »,« դադարեցում »,« Աբորտ »կամ« PARSERERROR »):
    Սկսելով jQuery-1.5- ից, ամբողջական պարամետրը կարող է փոխանցվել ոչ թե մեկ գործառույթ, այլ գործառույթների շարք: Բոլոր գործառույթները կկատարվեն այն կարգով, երբ նշված է զանգվածը:
  6. Բովանդակություն
    Տեսակը, օբյեկտ:
    Պարամետրը հայտնվեց JQuery-1.5-ում, տեղադրված է ձեւաչափի օբյեկտում (լարային. Պարբերաբար արտահայտություն) եւ որոշում է, թե ինչպես JQuery- ը ապամոնտաժում է սերվերից պատասխանը, կախված իր տեսակից:
  7. Բովանդակություն:
    Տեսակը, տրամաբանական արժեք կամ լար:
    Սերվերին խնդրանք ուղարկելիս տվյալները փոխանցվում են բովանդակության մեջ նշված ձեւաչափով: Ըստ լռելյայն, «դիմում / x-www-form-urlencoded; Charet \u003d UTF-8 ', որը հարմար է շատ դեպքերում: Եթե \u200b\u200bնշեք, որ այս պարամետրը բացահայտ կփոխանցվի սերվերին (նույնիսկ եթե այնտեղ որեւէ տվյալ չի ուղարկվել):
    JQuery-1.6- ի միջոցով կարող եք կեղծ ուղարկել վերնագիրը չտեղադրելու համար:
  8. Համատեքստ:
    Տեսակը, օբյեկտ:
    Հարցումը գործարկելուց հետո առարկան, որը կլինի համատեքստը (փոխանցվող արժեքը այս փոփոխականին): Օրինակ, եթե դոմի տարրը նշում եք որպես համատեքստ, ապա Ajax- ի բոլոր պահանջների բեռնափոխադրողները նույնպես կկատարվեն այս DOM տարրի համատեքստում: Այս օրինակում Հիմնաբառ Սա պարունակում է փաստաթուղթ:

    $ .ajax ((URL: "Test.html", համատեքստ. Փաստաթուղթ)): Կատարված (գործառույթ ()));));

    $ Ajax ((

    uRL. «Test.html»,

    Համատեքստ. Փաստաթուղթ: Մարմին:

    )): Կատարված (գործառույթ () (

    $ (սա): AddClass («Կատարված»);

    } ) ;

  9. Փոխարկիչներ:(Լռելյայն.
    Տեսակը, օբյեկտ:
    Parameter- ը հայտնվեց JQuery-1.5-ում, որոշում է, թե ինչ գործառույթների կվերափոխվի արժեքների նույն տիպի, մյուսում:
  10. Խաչաձեւ ռեժիմ:(Լռելյայն. Կեղծ նույն տիրույթի համար, ճշմարիտ է խաչմերուկների համար)
    Տեսակը, տրամաբանական արժեք:
    Պարամետրը հայտնվեց JQuery-1.5-ում, եթե ցանկանում եք կատարել նույն տիրույթի վրա խաչմերուկի հարցումը (օրինակ, JSOP), ճշմարիտ է խաչաձեւ պարամետրում: Սա, օրինակ, թույլ է տալիս սերվերի վերահղումը մեկ այլ տիրույթին դարձնել:
  11. Տվյալներ:
    Տեսակը, օբյեկտ, լար կամ զանգված:
    Տվյալներ, որոնք կփոխանցվեն սերվերին: Եթե \u200b\u200bտվյալները լար չեն, ապա դրանք վերածվում են հարցման տողի: Հայտերի ստանալու համար տվյալները կցվում են URL- ին: Օբեկտը պետք է բաղկացած լինի մի զույգ առանցքային / արժեքից: Եթե \u200b\u200bզանգվածի արժեքը, ապա jQuery պատվերները արժեքները կախված են ավանդական պարամետրից: Օրինակ, լռելյայն, (Foo: [Bar1 "," Bar2 "]) վերածվում է & foo \u003d bar1 & foo \u003d Bar2:
  12. datafilter (Տվյալներ, տեսակը)
    Տեսակը, գործառույթ:
    Գործառույթ, որը նախնական մշակման տվյալներ կներկայացնի սերվերի կողմից, I.E: Այն պետք է խաղա ֆիլտրի դերը եւ վերադարձնի մաքրված լարը: Երկու պարամետրեր փոխանցվում են այս գործառույթին. Նշված տվյալները եւ պարամետրային արժեքը Տվյալների շտեմարան, Datafilter- ում նշված գործառույթը պետք է վերադարձնի վերամշակված տվյալները:
  13. Տվյալների շտեմարան (Լռելյայն. Որոշվում է ինքնաբերաբար (XML, JSON, Script կամ HTML))
    Տեսակը, տող:
    Տվյալների տեսակը, որում ակնկալվում է պատասխան սերվերից: Եթե \u200b\u200bդա նշված չէ, jQuery- ը կփորձի ինքնաբերաբար որոշել, օգտագործելով Mime սերվերը:
  14. Սխալ
    Տեսակը, գործառույթ
    Այն գործառույթը, որը կանչվելու է սերվերին խնդրանքի անհաջող ավարտի դեպքում: Այն ապահովում է երեք պարամետր. JQXHR (մինչեւ 1,5-ը օգտագործվում է XMLHTTPREQUESEST), լարային, որը տեղի է ունեցել այն սխալի նկարագրությամբ, ինչպես նաեւ դա տեղի է ունեցել բացառության օբյեկտ: Երկրորդ փաստարկի հնարավոր արժեքները. «Ժամկետը», «Սխալ», «Չմնալ» եւ «Պարմոդեր» (անկանխատեսելի դեպքերում, անվավեր արժեքը կարող է վերադարձվել): Սկսած jQuery-1.5-ից, այս պարամետրը կարող է տեւել ինչպես մեկ գործառույթ, այնպես էլ գործառույթների շարք:
    Սխալի իրադարձությունը տեղի չի ունենում այն \u200b\u200bժամանակ, երբ տվյալների շտեմարանը հավասար է սցենարի կամ JSONP- ին:
  15. համաշխարհային (Լռելյայն. True իշտ է)
    Տեսակը, տրամաբանական արժեք:
    Պատասխանատու է Global Ajax հարցման միջոցառումների գործունեության համար (օրինակ, Ajaxstart կամ Ajaxstop): Եթե \u200b\u200bայս պարամետրը դնում եք կեղծ, համաշխարհային իրադարձությունների համար Այս խնդրանքը Կկոչվի:
  16. Վերնագրեր:
    Տեսակը, օբյեկտ:
    Այստեղ պարամետրը հայտնվեց JQuery-1.5- ում, կարող եք նշել հարցման լրացուցիչ վերնագրերը (վերնագիր): Այս պարամետրերի արժեքները մուտքագրվելու են նախքան Forfor եռեֆեկտիվ գործառույթը, որում վերջնական փոփոխությունները կարող են կատարվել վերնագրերին:
  17. iFMODIFID
    Տեսակը, տրամաբանական արժեք:
    Երբ այս պարամետրը ճշմարիտ եք փոխանցում, հարցումը կավարտվի «հաջողակ» կարգավիճակով, միայն այն դեպքում, երբ սերվերից պատասխանը տարբերվում է նախորդ պատասխանից: JQuery- ը ստուգում է այս փաստը, որը վերաբերում է վերջին փոփոխված վերնագրին: JQuery-1.4- ից սկսած, վերջին փոփոխվածից բացի եւ «Etag» - ը նույնպես ստուգվում է (երկուսն էլ տրամադրվում են սերվերի կողմից եւ անհրաժեշտ է զննարկիչին տեղեկացնելու համար, որ սերվերից պահանջվող տվյալները չեն փոխվում նախորդ պահանջից):
  18. կղզու
    Տեսակը, տրամաբանական արժեք:
    Parameter- ը հայտնվեց JQuery-1.5.1-ում, թույլ է տալիս տեղադրել էջի աղբյուրի տեղական կարգավիճակը (ասես պատահել է ֆայլերի արձանագրության միջոցով), նույնիսկ եթե jQuery- ը այլ կերպ է ճանաչում: Գրադարանը որոշում է, որ էջը տեղական արձանագրությունների դեպքում է ընթանում հետեւյալ արձանագրությունների դեպքում. Ֆայլ, * -Extension եւ widget: Առաջարկվում է սահմանել Islocal պարամետրերի արժեքը, օգտագործելով $ .Ajaxsetup () գործառույթը Անհատական \u200b\u200bAJAX հարցումների պարամետրեր:
  19. jspop
    Տեսակը, տողի կամ տրամաբանական արժեք:
    Սահմանում է JSONP հայցադիմումի URL- ին ավելացված պարամետրի անունը (լռելյայն, «հետադարձ կապ» է օգտագործվում): Օրինակ, կազմաձեւումը (JSONP. «Onjsonpload») վերածվում է «Onjsonload \u003d» տողի URL մասի մի մասի: , 1.5-րդ տարբերակից սկսած, այս կեղծ պարամետրի ճշգրտումը կանխում է URL- ին ավելացնելը Լրացուցիչ պարամետր, Այս դեպքում դուք պետք է սահմանեք JSONPCALLBACK- ի կարգավորման արժեքը: Օրինակ, սա է. (JSONP. FALSE, JSONPCALLBACK. «CALLBACKNAME»):
  20. jponpcallback
    Տեսակը, լարային կամ գործառույթ:
    Սահմանում է գործառույթի անվանումը, որը կկոչվի JSOP- ի խնդրանքին սերվերին պատասխանելիս: Լռելյայն, jQuery- ը ստեղծում է այս հատկության կամայական անվանումը, որն ավելի նախընտրելի տարբերակ է, որն ավելի է պարզեցնում գրադարանի աշխատանքը: Պատճառներից մեկը, որում նշվում է ձեր սեփական JSONP հարցման վերամշակման գործառույթը `ստացման պահանջների պահոցը բարելավելը:
    Սկսելով jquery-1.5- ից, կարող եք այս պարամետրում գործառույթ նշել, որպեսզի ինքներդ վերամշակեք սերվերի պատասխանը: Այս դեպքում նշված գործառույթը պետք է վերադարձնի սերվերից ստացված տվյալները (նշված գործառույթում դրանք հասանելի կլինեն առաջին պարամետրում):
  21. Մեթոդ (լռելյայն. «Ստացեք»)
    Տեսակը, տող:
    Parameter- ը հայտնվեց JQuery-1.9.0- ում, թույլ է տալիս նշել սերվերին («գրառումը», «Ստացեք» հարցման տեսակը («Ստացեք», «Ներդրեք»)
  22. mimetype.
    Տեսակը, տող:
    Պարամետրը հայտնվեց JQuery-1.5.1-ում: Այս ոլորտում կարող եք նշել այն տվյալների տեսակը, որում սերվերից պատասխանը սպասվում է XHR- ի փոխարեն
  23. Գաղտնաբառ
    Տեսակը, տող:
    Եթե \u200b\u200bանհրաժեշտության դեպքում սերվերի նույնականացման գաղտնաբառ:
  24. processdata. (Լռելյայն ճշմարիտ)
    Տեսակը, տրամաբանական արժեք:
    Ըստ լռելյայն, սերվերին փոխանցվող տվյալները փոխարկվում են հարցման տողի (URL ձեւաչափի) օբյեկտից (URL ձեւաչափ: FNAME1 \u003d VEALE1 & FNAME2 \u003d VEALE2 & ...): Եթե \u200b\u200bՁեզ անհրաժեշտ է ուղարկել DOM փաստաթուղթ կամ այլ տվյալներ, որոնք չեն կարող փոխարկվել `պրոցեսդատայի տարբերակը կեղծելու համար:
  25. scriptcharset.
    Տեսակը, տող:
    Կիրառվում է միայն Ajax- ի հարցումների համար, տվյալների շտեմարանը կարող է լինել կամ «JSONP» կամ «սցենար»: Եթե \u200b\u200bերրորդ կողմի տիրույթում սերվերը օգտագործում է ձեր կոդավորումը, քան ձերը, ապա պետք է նշեք երրորդ կողմի սերվերի կոդավորումը:
  26. Կարգավիճակի կոդ:
    Տեսակը, օբյեկտ:
    Պարամետրը հայտնվեց JQuery-1.5.0- ում մի շարք գոլորշու մեջ, որում հարցման կոդերը համեմատվում են այն գործառույթների հետ, որոնք առաջանալու են: Օրինակ, 404 կոդի համար (գոյություն չունեք), կարող եք հաղորդագրություն ուղարկել էկրանին.

    $ .ajax (statuscode: (404: Function () (Alert ("էջը չի գտնվել");));

    $ Ajax ((

    statuscode: (

    404. Գործառույթ () (

    alert («էջը չի գտնվել»);

    } ) ;


    Եթե \u200b\u200bհարցումն անցավ հաջողությամբ, ապա որպես պարամետր, Անանուն գործառույթ Նույն պարամետրերը կպահանջվի, որ հարցման հաջող կատարման գործառույթները (սահմանված են հաջողության պարամետրով), եւ սխալի գործառույթների դեպքում:
  27. Հաջողություն (տվյալների, textstatus, JQXHR)
    Տեսակը, գործառույթ, զանգված:
    Այն գործառույթը, որը կանչվելու է սերվերի պահանջի հաջող ավարտի դեպքում: 3 փաստարկ է տանում.
    • Սերվերի եւ նախնական մշակման տվյալների (տվյալներ).
    • լարային կատարման կարգավիճակով (textstatus);
    • jQXHR օբյեկտ (JQXHR- ի փոխարեն 1.5 տարբերակներով) օգտագործում է xmlhttprecest): JQuery 1.5-ից `մեկ գործառույթի փոխարեն, այս պարամետրը կարող է գործառույթների շարք վերցնել:
  28. Ընդմիջում.
    Տեսակը, համարը:
    Ժամանակը սպասելով Server- ի պատասխանը Milliseconds- ում: Վերաշարադրել Գլոբալ պարամետր Նույն պարամետրը $ .ajaxsetup (): Եթե \u200b\u200bայս անգամ գերազանցվի, հարցումը կավարտվի սխալմամբ, եւ տեղի կունենա սխալի միջոցառումը, որը կունենա «ժամկետում» կարգավիճակը:
    Ժամանակը հաշվում է $ .AJAX գործառույթը զանգահարելու պահից: Կարող է պատահել, որ այս պահին կմեկնարկվեն մի քանի այլ դիմումներ, եւ զննարկիչը հետաձգելու է ընթացիկ հայցի կատարումը: Այս դեպքում դադարեցումը կարող է ավարտվել, չնայած փաստորեն, հարցումը նույնիսկ չի սկսվել:
    JQuery-1.4- ում եւ ավելի երիտասարդ, սպասման ժամանակի վերջում XMLHTTPREQUEST օբյեկտը կվերափոխվի սխալի վիճակին եւ դրա դաշտերի հասանելիությունը կարող է բացառություն առաջացնել: Firefox 3.0+ ում սցենարի եւ JSONP հարցումները չեն ընդհատվի, երբ սպասման ժամանակը գերազանցվի: Դրանք կավարտվեն նույնիսկ այս անգամ լրանալուց հետո:
  29. Ավանդական
    Տեսակը, տրամաբանական արժեք:
    Սահմանեք այս պարամետրի արժեքը ճշմարիտ, որպեսզի օգտագործվի ավանդական փոխակերպման պարամետրերը (սերիալացում):
  30. Տիպ(Լռելյայն. «Ստացեք»)
    Տեսակը, տող:
    Անալոգային պարամետրերի մեթոդը: Պարամետրը օգտագործվում է jQuery- ում 1.9.0-ից ցածր
  31. url (Լռելյայն. Ընթացիկ էջի հասցեն)
    Տեսակը, տող:
    Սահմանում է այն հասցեն, որով ուղարկվելու է հարցումը:
  32. Օգտագործողի անունը.
    Տեսակը, տող:
    Անհրաժեշտության դեպքում սերվերի նույնականացման օգտվողի անուն:
  33. xHR(Լռելյայն. IE- ում ActiveXobject- ում, XMlhttpeQuest- ը այլ զննարկիչներում)
    Տեսակը, գործառույթ:
    Գործառույթ, որը կապահովի Xmlhttprecest օբյեկտ: Լռելյայն, այս առարկան ActiveXobject- ն է, եւ այլ դեպքերում այն \u200b\u200bxmlhttprecest է: Այս պարամետրով դուք կարող եք իրականացնել այս օբյեկտի ձեր սեփական տարբերակը:
  34. xhrfields.
    Տեսակը, օբյեկտ:
    Պարամետրը հայտնվեց JQuery-1.5.1-ում մի շարք զույգերով (Անուն, նշան) `օբյեկտի ռեժիմի համապատասխան դաշտերի արժեքները փոխելու / ավելացնելու համար: Օրինակ, դուք կարող եք ճշգրիտ կերպով սահմանել դրա հետ կապված գույքը, խաչմերուկի հարցումը կատարելիս.

    $ .ajax ((URL: A_Cross_domain_url, Xhrfields:

    $ Ajax ((

    uRL: A_Cross_domain_url,

    xhrfields. (

    Հետվիրահատականներ. True իշտ է:

    } ) ;

Ինչպես նշվեց վերեւում, $ .AJAX () առավել հիմնական մեթոդը, եւ հետագա բոլոր մեթոդները միայն դրա փաթաթան են: Շատ մի մասն է պետք այս գործառույթը անվանել, քանի որ Կան ավելի բարձր մակարդակի այլընտրանքներ, ինչպիսիք են եւ. Դրանք ավելի հեշտ են հասկանալու եւ օգտագործման մեջ, չնայած $ .AJAX () ավելի ճկուն լուծում է:

Օգտագործման ամենահեշտ ձեւը կկազմի $ .ajax () Զանգ, առանց պարամետրերի ճշգրտման.

$ Ajax ();

Միջոցառումներ

Տեղակայել, սխալ, տվյալների շտեմարանի պարամետրերը, հաջողությունները եւ ամբողջական թույլ են տալիս տեղադրել միջոցառման պահարաններ, որոնք տեղի են ունենում Ajax- ի յուրաքանչյուր հարցման որոշակի ժամանակներում:

  • Տեղադրեք:տեղի է ունենում անմիջապես սերվերին խնդրանք ուղարկելուց առաջ.
  • Սխալ տեղի է ունենում հարցման անհաջող կատարման դեպքում.
  • datafilter. տեղի է ունենում սերվերից տվյալներ ժամանելու պահին: Թույլ է տալիս կարգավորել սերվերի կողմից ուղարկված «հում» տվյալները.
  • Հաջողություն: տեղի է ունենում հարցման հաջող ավարտի դեպքում.
  • Ամբողջական:տեղի է ունենում խնդրանքի ցանկացած ավարտի դեպքում:
  • Հաջողություն. Գործառույթ () (

    Ահազանգ ( «Տվյալները հաջողությամբ ուղարկվել են»:) ;

    } ) ;

    Ուշադրություն Վերեւում քննարկված պարամետրերը (), ..-) ավելացվել են jQuery-1.5- ին, բացի `ստանդարտ հետաձգված օբյեկտի մեթոդից: Done (), .fail () I. Այն, ինչ դուք կարող եք տեղադրել բեռնափոխադրողներ, սկսած jQuery-1.8- ից, այս երեք մեթոդները անցանկալի կլինեն օգտագործման համար:

    Տվյալների շտեմարան

    $ .AJAX () գործառույթը կիմանա ինքնուրույն սերվերից ուղարկված տվյալների սերվերի տեսակի մասին (MIME գործիքներ): Բացի այդ, հնարավոր է անձամբ նշել (պարզաբանել) Ինչպես մեկնաբանել այս տվյալները: Դա արվում է պարամետրից օգտվելու միջոցով: Տվյալների շտեմարան, Այս պարամետրի հնարավոր արժեքները.

    • «XML» - Արդյունքում XML փաստաթուղթը հասանելի կլինի տեքստի տեսքով: Դուք կարող եք աշխատել նրա հետ Ստանդարտ միջոցներ jQuery (ինչպես նաեւ HTML փաստաթղթով):
    • «HTML» - Ստացված HTML- ը հասանելի կլինի տեքստի ձեւով: Եթե \u200b\u200bայն պարունակում է գրություններ պիտակներով
      Սերվերի կայքում ինչ-որ բանի քանակը 2.ru -

      PHP.

      Այժմ մենք պետք է ստեղծենք JSON օբյեկտ տվյալներով, PHP- ում: Ենթադրենք, որ որոշակի մետր է պահվում site2.ru սերվերում, մենք այն կխնդրենք site1.ru- ից եւ ստացեք ընդամենը մի շարք (ինչ-որ բանի քանակը): Խնդրում ենք նկատի ունենալ, որ մենք պետք է ստեղծենք JSONP օբյեկտ, սովորական JSON օբյեկտի փոխարեն:

      // Ստեղծեք զանգված այն տվյալների հետ, որոնք մենք ցանկանում ենք ուղարկել JSON- ի կողմից $ $ տվյալների միջոցով \u003d Array ("Counter" \u003d\u003e 5,); // Թարգմանել զանգվածը JSON $ JSON_DATA \u003d JSON_ENCODE ($ տվյալների); // սահմանել կոդավորման եւ բովանդակության տիպի վերնագիր («Բովանդակություն-տեսակը, դիմում / JSON; Charset \u003d UTF-8»); // JSONP - Դարձրեք JSONP ECHO $ \u200b\u200b_get օբյեկտ [«Զանգահարեք»]: "(" $ json_data. ");";

      Պահպանեք ֆայլը որպես counter.php եւ լրացրեք այն site2.ru սերվերի վրա

      JavaScript.

      Այժմ դուք պետք է զանգահարեք $ .ajax JQuery- ում, ինչպես նկարագրված է ստորեւ.

      $ (Փաստաթուղթ). Պատրաստ (գործառույթ () ($ .Ajax ((Տեսակը, "Ստացեք", URL: "Http://site2.ru/counter.php?callback\u003d?", Datatype: Գործառույթ (տվյալներ) ($ (". Տեքստ .Counter"): HTML (data.counter);)));));

      Եթե \u200b\u200bդուք չեք նշում հետադարձ կապի գործառույթը եւ պարզապես գրեք զանգահարեք: - JQuery գործառույթի անվանումը ավտոմատ կերպով փոխարինվում է, բայց կարող եք նաեւ հստակորեն նշել գործառույթի անվանումը, ինչպիսիք են զանգը \u003d վերլուծեք:

      Այժմ գործարկեք HTML ֆայլը site1.ru- ում: Դուք պետք է ստանաք սերվերից պատասխան, JSON տվյալներով: Կարող եք օգտագործել նաեւ այս խաչմերուկի AJAX- ը $ shartjson, $ .ajax, $ .post եւ $:

      Սիրված Մի մոռացեք փոխարինել site2.ru - ձեր հեռավոր սերվերի անվան վրա, որին դիմում եք:

      Եթե \u200b\u200bունեք հարցեր կամ լրացումներ, գրեք ստորեւ նշված մեկնաբանություններում: