2011-07-28 32 views
6

Czy możliwe jest uzyskanie wszystkich wartości domyślnych, które są asocjowane z funkcją $.ajax.

Tak byłoby powrócić coś takiego:

{ 
    global:true, 
    headers:{}, 
    ifModified:false, 
    type:"GET", 
    url:"the current page url", 
    etc.... 
}

Odpowiedz

8

Od patrząc na source code, wierzę (bieżącego) domyślnie są Znalezione w jQuery.ajaxSettings, oczywiście dostępne również jako $.ajaxSettings. Więc jeśli ich nie zmieniłeś, powinieneś móc je pobrać.

Zauważ, że jeśli masz zmienił je, na przykład stosując metodę $.ajaxSetup użytkową, dostaniesz nowe domyślne utworzone, a nie te związane z biblioteki jQuery.

patrząc także na kod źródłowy, wydaje się, że domyślne są następujące:

ajaxSettings: { 
    url: ajaxLocation, 
    isLocal: rlocalProtocol.test(ajaxLocParts[ 1 ]), 
    global: true, 
    type: "GET", 
    contentType: "application/x-www-form-urlencoded", 
    processData: true, 
    async: true, 
    /* 
    timeout: 0, 
    data: null, 
    dataType: null, 
    username: null, 
    password: null, 
    cache: null, 
    traditional: false, 
    headers: {}, 
    */ 

    accepts: { 
     xml: "application/xml, text/xml", 
     html: "text/html", 
     text: "text/plain", 
     json: "application/json, text/javascript", 
     "*": "*/*" 
    }, 

    contents: { 
     xml: /xml/, 
     html: /html/, 
     json: /json/ 
    }, 

    responseFields: { 
     xml: "responseXML", 
     text: "responseText" 
    }, 

    // List of data converters 
    // 1) key format is "source_type destination_type" (a single space in-between) 
    // 2) the catchall symbol "*" can be used for source_type 
    converters: { 

     // Convert anything to text 
     "* text": window.String, 

     // Text to html (true = no transformation) 
     "text html": true, 

     // Evaluate text as a json expression 
     "text json": jQuery.parseJSON, 

     // Parse text as xml 
     "text xml": jQuery.parseXML 
    } 
}, 
+0

niesamowite dokładnie, co im szukasz. Dzięki – locrizak

+0

@locrizak: Tylko pamiętaj, że jest to nieudokumentowane, więc niekoniecznie jest to w przyszłości. –

+0

To prawda, ale wolałbym raczej użyć czegoś w bibliotece jquery zamiast przepisania go na inny obiekt. – locrizak

0

są one wymienione w docs jQuery:

http://api.jquery.com/jQuery.ajax/

+1

Ale można zmienić ustawienia domyślne za pomocą '$ .ajaxSetup()'. –

+0

tak, ale nie chcę hardcode obiektu, ponieważ jak @mu powiedział '$ .ajaxSetup' może nadpisać je – locrizak

Powiązane problemy