Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: jQuery: ajax ja xml

Triton [11.01.2011 11:28:58]

#

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ä.

Matso [11.01.2011 14:33:01]

#

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);
        }
    });
});

Triton [11.01.2011 14:46:11]

#

Niin no tuo olisi tietenkin varteenotettava vaihtoehto, tosin mietin, että pitäisikö kuitenkin alkaa käyttämään JSONia...

tsuriga [11.01.2011 18:05:22]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta