Tarkoituksenani olisi käyttää jQueryn $.ajax-metodia sivun ajax-toiminnallisuuden toteuttamiseen. Tarkennuksena vielä voin sanoa sen, että palvelimen päästä data lähetään xml-muotoisena. Kaikki näyttä toimivan Firefoxilla ihan oikein, mutta jostain syystä Chrome ei osaa hakea xml-muotoista tietoa. Ongelma tosin korjantuu, kun datan tyypiksi valitaan joku muu kuin xml, mutta haluaisin tämän kuitenkin saada toimimaan tuolla xml:llä, jos se on ylipäätään mahdollista... Eli onko kellään mitään ratkaisua?
Koodini näyttää tältä:
var JQ = jQuery.noConflict(); JQ(document).ready(function () { JQ.ajax({ url: 'menu.xml', type: 'POST', cache: false, dataType: 'xml', success: function (data) { alert(data); } }); });
Eli tuo success-funktion data-parametri näyttää arvonaan "null", kun dataTypen arvo on "xml".
Palvelimen puolella asia on hoidettu myös oikein, eli header-funktiolla on määritetty Content-type ja sen arvona on "text/xml". Kielenä käytän siis php:tä.
Jos haluut säästää aikaa eikä XML ota toimiakseen =)
JQ(document).ready(function () { JQ.ajax({ url: 'menu.xml', type: 'POST', cache: false, dataType: 'text', // Vastaanotetaan sitte text muodossa kerta xml bugaa? success: function (data) { data = $(data); // Muutetaan text dom puuksi alert(data); } }); });
Niin no tuo olisi tietenkin varteenotettava vaihtoehto, tosin mietin, että pitäisikö kuitenkin alkaa käyttämään JSONia...
Mieluummin varmaanki GETtiä tuohon kun vaan haetaan (kevyttä?) kamaa eikä tehä mitään muutoksia servulla sijaitsevaan dataan. POST myös vie kaks pakettia kun taas GETillä riittää yks :). Onko joku syy, että tuota ei pitäisi kakuttaa ollenkaan? JSON olis varmaanki ihan hyvä vaihtoehto tuohon. Jos et tarvitse noita erikoisvalintoja, niin get
-metodi toimii messevästi.
jQuery.get('menu.xml', function(data) { alert(data); } );
Millä Chromen versiolla testasit? Omalla 8.0.552.224 toimii kyllä tuo ajax
-metodikin toimii.
Aihe on jo aika vanha, joten et voi enää vastata siihen.