jQuery.ajax()

jQuery.ajax( url [, settings ] ) Dönen Değer : jqXHR Nesnesi
Açıklama : Asenkron bir HTTP (Ajax) isteği gerçekleştirir.

jQuery.ajax( url [, settings ] )
url
Tip : String
İsteğin yapıldığı URL adresini içeren string değer.
settings
Tip : Düz JavaScript nesne
Ajax isteğini şekillendiren key/value değerlerden oluşan set.
jQuery.ajax( [settings ] )
settings
Tip : Düz JavaScript nesne

Ajax isteğini şekillendiren key/value değerlerden oluşan set. Tüm ayar değerleri opsiyoneldir. Default değerler $.ajaxSetup() metodu ile belirlenebilir.
  • accepts (default: veri tipine göre değişir)
    Tip : Düz JavaScript nesne
    Verilen veri tipini onun MIME tipine bağlayan bir key/value setidir, isteğin Accept header'ında gönderilir. Bu header server'a nasıl bir değer dönüşü beklendiğini (kabul edileceğini) bildirir. Aşağıdaki örnek mycustomtype tipinde bir veri beklediğini server'a bildirir.
    $.ajax({
      accepts: {
        mycustomtype: 'application/x-some-custom-type'
      },
     
      // `mycustomtype` tipin nasıl dönüştürüleceği
      converters: {
        'text mycustomtype': function(result) {
          // bir şeyler yapılır
          return newresult;
        }
      },
     
      // Server'dan bir `mycustomtype` geri dönmesini iste
      dataType: 'mycustomtype'
    });  

  • async (default: true)
    Tip : Boolean
    Default olarak tüm istekler asenkron gönderilir. Yani tarayıcı çalışmasını durdurmaz, isteği yapar ve işine devam eder. Ne zaman cevap gelirse, cevaba göre yapıması tanımlanan işlemler yapılır. Senkron olursa tarayıcı çalışmasını durdurup, cevabın gelmesini bekler. Senkron istekler tarayıcıda kiltlenmelere neden olabilir. Domanin'ler arası istekler ve dataType: "jsonp" veri tipi istekler senkron çalışmayı desteklemez. jQuery versiyon 1.8 sonrası senkron çalışma iptal edilerek, success/error/complete callback metodları kullanımı zorunlu yapılmıştır.

  • beforeSend
    Tip : Fonksiyon( jqXHR jqXHR, Düz Nesne ayarlar )
    jqXHR nesnesini (v1.4 öncesi XMLHTTPRequest nesnesini) göndermeden önce düzenlemek için kullanılacak callback fonksiyonudur. jqXHR ve ayarlar nesneleri parametre olarak verilir. Bu bir Ajax Olayı'dır. beforeSend fonksiyonundan false değer dönmesi Ajax isteğini iptal eder.

  • cache (default true, eğer dataType script ya da jsonp ise false döner )
    Tip : Boolean
    Eğer false yapılırsa tarayıcının istek yapılan bilgiyi geçici hafızasında saklaması engellenir. Not: cache değerini false yapmak sadece HEAD ve GET isteklerinde çalışır.

  • complete
    Tip : Fonksiyon( jqXHR jqXHR, String textStatus )
    İstek sonlandığında çağrılacak fonksiyon ( success ve error olay işleyicilerinden sonra çalışır ). Fonksiyona iki parametre geçer, jqXHR nesnesi ve isteğin durumunu ifade eden bir string değer ( "success", "notmodified", "nocontent", "error", "timeout", "abort" veya parsererror ). Versiyon 1.5 sonrası complete özelliği fonksiyonlardan oluşan bir array de değer alabilir, bu fonksiyonlar sırayla çalıştırılır. Bu bir Ajax Olayıdır.

  • contents
    Tip : Düz Nesne
    Verilen içerik tipine göre jQuery'nin cevabı nasıl parse edeceğini belirleyen string/regex çiftlerinden oluşan bir nesne.

  • contentType (default: 'application/x-www-form-urlencoded; charset=UTF-8')
    Tip : Boolean veya String
    Veriyi server'a gönderirken bu veri tipini kullan. Birçok durumda default değeri uygundur. Eğer $.ajax() ile bir contentType verilmişse veri gönderilmese bie bu tip server'a gönderilir. Versiyon 1.6'dan itibaren bu değere false vererek jQuery'nin bir veri tipi header göndermesi istenmediği belirtilir.

  • context
    Tip : Düz Nesne
    $.ajax({
      url: "test.html",
      context: document.body
    }).done(function() {
      $( this ).addClass( "done" );
    });

    Ajax fonksiyonunda kullanılacak bağlamı belirtir. Örnekte ajax isteği başarılı olunca bulunulan sayfanın <body> elemanına done sınıf değeri eklenir.

  • converters ( default {"* text": window.String, "text html": true,
    "text json": jQuery.parseJSON, "text xml": jQuery.parseXML}
    )
    Tip : Düz Nesne
    Veri tipinden veri tipine dönüştüürcüleri içeren bir nesne. Her dönüştürücünün değeri dönen cevabın dönüştürülmüş şeklini veren bir fonksiyondur.

  • crossDomain ( default aynı domain'de istekler için false , ayrı domain istekler için true )
    Tip : Boolean
    Aynı domain'de istek yaparken domain'ler arası şeklinde istek yapmak için bu özelliğe true değeri girin. Bu sayede örneğin server tarafından başka domainlere redirect etme imkanı verebilirsiniz.

  • data
    Tip : Düz Nesne veya String veya Array
    Server'a gönderilecek veri. Eğer HTTP metodu mesela GET gibi bir entity bölümüne sahip değilse veriler url değerine eklenerek gönderilir.

    Veri bir nesne olduğunda eğer processData opsiyonunda false değer verilmemişse , jQuery nesnenin key-value çiftlerinden bir veri string'i oluşturur. Örneğin { a: "bc", d: "e,f" } nesnesi "a=bc&d=e%2Cf" string'ine dönüştürülür. Eğer değer bir array'se default traditional: false ayarı ile birçok değer aynı key ile verilir. Örnek { a: [1,2] } dönüştürülünce "a%5B%5D=1&a%5B%5D=2" olur, bu aslında "a[]=1&a[]=2" string'inin url'e uygun dönüştürülmüş hali.

    data bir string yapılırken contentType'da belirtildiği şekilde dönüştürülmüş olmalıdır.

    dataType: "json" veya dataType: "jsonp" olan isteklerde eğer URL içinde çift soru işareti (??) veya sorgu stringinde tek soru işareti (?) varsa jQuery tarafından üretilen ve her sayfada biricik olan bir değere değiştirilir (mesela jQuery21406515378922229067_1479880736745 )

  • dataFilter
    Tip : Fonksiyon( String data, String type ) => Herhangi bir şey
    XMLHttpRequest'in ham cevabını işlemek için kullanılan bir fonksiyon. Bu fonksiyon, cevabı sanitize etmek için kullanılan bir ön filtrasyon fonksiyonu. Sanitize edilmiş veriyi geri dönmelisiniz. Fonksiyona geçirilen 2 parametrede server'dan dönen ham veri ve isteğin dataType özellik değeri vardır.

  • dataType (default: Akıllı tahmin (xml, json, script, veya html) )
    Tip : String
    Server'dan cevap olarak beklediğiniz verinin tipi. Eğer hiç bir şey verilmemişse jQuery istek yapılan dosya MIME tipine göre tahminde bulunur (XML MIME tipi cevap XML'e dönüştürülür, v1.4'te JSON cevap JavaScript nesneye dönüştürüldü, v1.4'te script cevap kod olarak çalıştırıldı, geri kalan herşey string olarak işlenir). Mümkün olan veri tipleri (ve success callback'inize parametrede gidecek veriler) şunlardır:

    • "xml" JQuery tarafından işlenebilen bir XML döküman döner

    • "html" HTML kodu düz yazı olarak döner, script tag'leri DOM'a monte edildiğinde çalışacaktır.

    • "script" Cevabı JavaScript olarak çalıştırır ve düz yazı olarak geri döner. Eğer cache opsiyonuna true değer verilmemişse, URL'e _=[TIMESTAMP] sorgu parametresi ekleyerek cash edilmesini engeller. Not : bu uzak dömain'ler için POST istekleri GET'e çevirir.

    • "json" Cevabı bir JSON veri olarak işler ve bir JavaScript nesnesi döner. Domain'ler arası örneğin ?callback=? gibi callback değeri olan "json" istekler eğer istek ayarlarında jsonp: false olarak belirtilmediyse JSONP olarak işlenir. JSON veri çok katı kurallarla işlenir, herhangi bir hatalı JSON veri yazımı bir parse hatası olarak geri döner. Versiyon 1.9 sonrasında boş cevaplar da kabul edilmez, server ya null ya da { } dönmelidir. ( sağlıklı JSON formatları için json.org adresine bakınız )

    • "jsonp" Bir JSON bloğuna JSONP kullanarak değer yükler. Bir callback belirtmek için URL sonuna "?callback=?" eklenir. cache opsiyonuna true değer verilmemişse URL'e eklenen sorgu parametrelerine
      "_=[TIMESTAMP]" ekleyerek cache edilmesini engeller.

    • "text" düz yazı bir string.

    • Birden çok boşlukla ayrılmış değer Versiyon 1.5'ten itibaren jQuery Content-Type header'ında alınan bir dataType'ı ihtiyacınız olan tipe dönüştürür. Örneğin bir text cevaba XML gibi davranılmasını istiyorsanız, dataType değerine "text xml" verirsiniz. Ayrıca bir JSONP isteği yapıp text olarak gelen cevabın jQuery tarafından XML olarak işlenmesi için "jsonp text xml" değeri verirsiniz. Benzer olarak kısaca "jsonp xml" değeri verirseniz direk dönüştürmeyi başaramayacağı için önce JSONP'den text'e , oaradan XML'e çevirecektir.

  • error
    Tip : Fonksiyon( jqXHR jqXHR, String textStatus, String errorThrown )
    İstek başarısız olursa çalışacak bir fonksiyon. Fonksiyona 3 parametre geçirilir: ilkinde jqXHR nesnesi vardır, ikinci oluşan hatanın türünü belirtir bir stringdir. İkinci parametrede gelmesi olası değerler (null hariç), "timeout", "error", "abort" ve "parseerror". Bir HTTP hatası oluşursa erroThrown değerine "Not Found" ya da "Internal Server Error" gibi HTTP status'un yazı kısmı konur. Versiyon 1.5 sonrası birden fazla fonksiyonu da bir array içinde değer olarak alabilir, fonksiyonlar sırayla çalıştırılır. Not : Bu olay işleyicisi domain'ler arası script ve domain'ler arası JSONP isteklerde çalıştırılmaz. Bu bir Ajax Olayı'dır.

  • global ( default true )
    Tip : Boolean
    Bu istek için global Ajax olay işleyicilerine izin verilip verilmeyeceği. Değeri false yapılırsa ajaxStart veya ajaxStop gibi global olaylar tetiklenmeyecektir. Global olayları Ajax Olayları başlığında görebilirsiniz.

  • headers ( default { } )
    Tip : Düz Nesne
    XMLHttpRequest gönderimi ile istekte bulunurken beraberinde gönderilecek ilave header key-value çiftleri. X-Requested-With: XMLHttpRequest header değeri her zaman eklenir, fakat XMLHttpRequest default değeri burada değiştirilebilir. headers ayarı içindeki değerler ayrıca beforeSend ile verilen fonksiyon içinde de değiştirilebilir.

  • ifModified ( default false )
    Tip : Boolean
    İsteğin eğer cevap son istekten sonra değişmiş ise başarılı sonlanmasına izin verir. Bunu Last-Modified header değerini kontrol ederek yapar. Default değer false, header'ı dikkate almaz, her isteğin başarılı sonlanmasına izin verir.

  • isLocal ( default mevcut lcation protocol'e bağlı )
    Tip : Boolean
    Bulunulan ortamın (environment) jQuery tarafından öyle algılanmasa bile "lokal" algılanmasını sağlar. file, *-extension, ve widget progtokolleri "lokal" kabul edilir. Eğer isLocal özelliğine değer verilecekse $.ajaxSetup() metodu içinde yapılması tavsiye edlir.

  • jsonp
    Tip : String veya Boolean
    Bir JSONP isteğinde callback fonksiyon metodunun üzerine yazar. Bu değer URL'deki sorgu string'inin 'callback=?' parçasındaki callback yerine yazılmalıdır. Yani {jsonp:'onJSONPLoad'} değeri server'a 'onJSONPLoad=?' şeklinde bir URL'ye ilave parametre server'a gönderilir. Versiyon 1.5 sonrası jsonp özelliğine false değeri varmek jQuery'nin URL'e "?callback" değerini eklemesini engeller. Bu durumda ayrıca jsonpCallback değerine bakmanız gerekir. Örneğin { jsonp: false, jsonpCallback: "callbackName" }. Eğer Ajax isteği yaptığınız yere güvenmiyorsanız, güvenlik için jsonp özelliğini false yapabilirsiniz.

  • jsonpCallback
    Tip : String veya Fonksiyon().
    Bir JSONP isteğinde callback fonksiyonu belirtir. Bu değer jQuery tarafından rastgele isimle üretilen fonksiyon adının yerini alır. JQuery'nin herşeyi kolayca yönetmesi için kendi verdiği rastgele ismi kullanmak tercih edilir. Versiyon 1.5 sonrası bu değere callback fonksiyonunun adını dönen bir fonksiyon kullanımı da mümkün kılınmıştır.

  • method ( default GET )
    Tip : String
    İşlemde kullanılması istenen HTTP metodu. (örn. POST , GET , PUT)

  • mimeType
    Tip : String
    XHR mime tipinin üzerine yazar.

  • password
    Tip : String
    XMLHTTPRequest isteklerinde HTTP erişim yetkilendirmelerine kullanılacak şifre.

  • processData ( default true )
    Tip : Boolean
    Default olarak data özelliğinde veriler işlenip sorgu stringe dönüştürülecek bir nesne olarak verilir (String'den başka veriler için). content-type "application/x-www-form-urlencoded" değerine uygun dönüştürülür. Eğer bir DOMdocument ya da başka işlenmeyen bir değer göndermek isterseniz bu değeri false yapınız.

  • scriptAttrs
    Tip : Düz Nesne
    "script" veya "jsonp" isteklerde kullanmak üzere ilave özellikleri tanımlayan bir nesne. Key olarak özellik adı, value olarak da özelliğin değeri girilir. Eğer bu nesne verilirse script-tag aktarımına zorlayacaktır.

  • scriptCharset
    Tip : String
    Sadece "script" aktarım kullanılırsa değer verilebilir. İstekte kullanılan script tag'inin karakter setini belirtir. Bulunulan sayfa ve hedef uzak kaynağın karakter setleri farklıysa kullanılır. Alternatif olarak scriptAttrs içinde charset özelliğinde verilerek "script" aktarımdan emin olunabilir.

  • statusCode ( default { } )
    Tip : Düz Nesne
    Cevabın HTTP kodu ve o kodda cevaba karşı çalışacak fonksiyondan oluşan key-value çiftleri. Aşağıdaki örnek cevap kodu 404 olunca alarm popup açıyor.
    $.ajax({
      statusCode: {
        404: function() {
          alert( "sayfa bulunamadı" );
        }
      }
    });

    Eğer istek başarılı sonlanırsa durum kodu fonksiyonu aynı success callback fonksiyonu parametrelerini alır. Eğer cevap kodu hataysa (3xx redirect dahil) ona verilen fonksiyon da error callback parametreleri ile aynıdır.

  • success
    Tip : Fonksiyon( Herhangi bir şey data, String textStatus, jqXHR jqXHR )
    İstek başarılı şekilde sonlanırsa çağrılacak olay işleyici metod. Fonksiyona 3 parametre geçer: Server'dan dönen veri, dataType ile belirtilen formatta ve dataFilter'a göre düzenlenmiş olarak. Eğer varsa status değeri string olarak, ve jqXHR nesnesi. Versiyon 1.5 sonrası bu özelliğe fonksiyonlardan oluşan bir array verilebilir, verilen fonksiyonlar sırayla çalışır.

  • timeout
    Tip : Sayı
    İstek için milisaniye olarak bir timeout değeri verilir. Sıfır değeri timeout olmayacağını belirtir. Bu değer jQuery.ajaxSetup() ile verilen değerin üzerine yazar. Timeout zamanı $.ajax metodu çağrılmasıyla başlar. Eğer o esnada başka istekler de aktifse ve tarayıcı sunucuya ulaşmakta sorun yaşıyorsa timeout oluşabiliir.

  • traditional
    Tip : Boolean
    Eğer geleneksel parametre dizilimi kullanmak isterseniz bu değeri true yapın.

  • type ( default "GET" )
    Tip : String
    Yeni method özelliğinin isim eşdeğeri. Versiyon 1.9.0 öncesi için type özelliği kullanınız.

  • url ( default şu anda bulunulan sayfa )
    Tip : String
    İsteğin gönderileceği URL adresi değeri.

  • username
    Tip : String
    HTTP erişim yetkilendirme isteğine cevap için XMLHttpRequest ile kullanılan kullanıcı adı değeri.

  • xhr ( default mümkünse ActiveXObject (IE için), diğerleri için XMLHttpRequest )
    Tip : Fonksiyon()
    Kullanılacak XMLHttpRequest nesnesini oluşturan callback metod. IE için ActiveXObject default değerine sahiptir, diğerlerinde XMLHttpRequest default değerdedir. Default'tan başka bir şey olması ya da kendi XMLHttpRequest uyarlamanızı yapmak için, üzerine yazarsınız.

  • xhrFields
    Tip : Düz Nesne
    ÖğeAdı-öğeDeğeri çiftleri şeklinde değerlerden oluşan ve XHR nesnesinin ayarlarını yapmak için kullanılan nesne. Örneğin domain'ler arası istekler için withCredentials özelliğini true olarak ayarlayabilirsiniz.
    $.ajax({
       url: a_cross_domain_url,
       xhrFields: {
          withCredentials: true
       }
    });

$.ajax() fonksiyonu jQuery tarafından yapılan tüm Ajax isteklerinin arkasında kullanılan fonksiyondur. Daha üst seviyedeki $.get() ve .load() gibi daha kolay kulllanımlı alternatifleri kullanıldığı için bu metod direk olarak pek kullanılmaz.

------- TO DO --------



Örnekler :

.

.