Autor Zpráva
Woo
Profil
Zdravím mám takový problém s tím, že mám následující funkci, kterou se snažím získat aktuální jídelníček pro daný den.
 function ahoj()
{
    $.ajax({
    url: "https://student.czu.cz/jquery.php",    
    type: "POST",      
    dataType: 'jsonp',
    data: {jidelnilistek_datum: '2015-12-08'},          
    success: function (answer) {
    document.getElementById('jidlo').innerHTML += '<br>Jídelníček pro dnešní den!' +(answer);
}
});
Problém je v tom, že mi to v netbeans nehází žádnou chybu při debuggu, ale data nezískávám žádný. Funkci mám nastavenou přes onclick na button a upřímně netušim, kde je zakopaný pes. Projížděl jsem fórum i zkoušel na googlu pohledat, ale moudrý z toho nejsem.
Keeehi
Profil
Podle student.czu.cz/index.php?id_menu=367&id_submenu=1090&id_con_kind=5&id_con=8103 to vypadá, že člověk musí být přihlášený aby se mu to fungovalo.
A těžko ti pomůžeme když se k tomu nedostaneme.
Woo
Profil
Keeehi:
ah ták a předpokládám, že to asi nejde obejít? mám to v rámci semestrálního projektu a hostovaný ten web je v rámci jedné domény takže by to teoreticky mohlo jít přes php, nebo by tam byl stejný problém kvůli tomu přihlašování?
Keeehi
Profil
Woo:
hostovaný ten web je v rámci jedné domény
PHP ani tak nezáleží na doméně, ale stroji a pak na právech v rámci toho stroje. Naopak javascript nezajímá fyzický server ale může ji zajímat (a většinou zajímá) doména.

Takže 2 věci, na jaké url by byla vaše výsledná aplikace? A jak vypadá odpověď na dotaz ke kterému jste tu okopíroval hlavičky? Z toho se pak dá zjistit, zda to půjde javascriptem zjistit alespoň pro přihlášené uživatele.
Woo
Profil
Keeehi:
odpověď vypadá následovně
1#@#<tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Polévka 1</td><td style="width: 450px;">Zeleninová polévka s cizrnou A: 1,7,9<br />cena 7.00 Kč / 14.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Polévka 2</td><td style="width: 450px;">Hovězí polévka s drobením  A:1,3,7,9 <br />cena 6.00 Kč / 12.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Standardní jídlo 1 č.1</td><td style="width: 450px;">Vepřová plec na tymiánu, dušená rýže A: 1<br />cena 40.00 Kč / 70.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Standardní jídlo 2 č.2</td><td style="width: 450px;">Debrecínský vepřový guláš, houskové knedlíky A:1,3,7<br />cena 36.00 Kč / 66.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Standardní jídlo 3 č.3</td><td style="width: 450px;">Uzená krkovička, bretaňské fazole, okurka  A: 1,10<br />cena 45.00 Kč / 75.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Bezmasé jídlo 1 č.4</td><td style="width: 450px;">Smažený robi plátek (rostlinná bílkovina), bramborová kaše, okurka A: 1,3,6,7,10<br />cena 41.00 Kč / 71.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Sladké jídlo č.6</td><td style="width: 450px;">Kynuté knedlíky s borůvkami a zakysanou smetanou A: 1,3,7 <br />cena 37.00 Kč / 57.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Specialita 1 č.7</td><td style="width: 450px;">Mandžuské maso (120g kuřecí steak),  bramborová kaše, obloha  A: 1,3,6,7<br />cena 49.00 Kč / 79.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Specialita 2 č.8</td><td style="width: 450px;">Gratinované brambory s kuřecím masem, žampiony a sýrem A: 3,7<br />cena 49.00 Kč / 79.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Bezmasé jídlo 2 č.5</td><td style="width: 450px;">Řecký cuketový salát A: 3,7 <br />cena 35.00 Kč / 65.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Polévka 1 - večeře</td><td style="width: 450px;">Špenátová A: 1,7<br />cena 8.00 Kč / 16.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Polévka 2 - večeře</td><td style="width: 450px;">Slepičí  se smaženým hráškem A: 1,3,7,9 <br />cena 8.00 Kč / 16.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Standardní jídlo 1 - večeře č.1</td><td style="width: 450px;">Kuřecí nudličky se sýrovou omáčkou, vařená rýže A:1,7<br />cena 46.00 Kč / 76.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Standardní jídlo 2 - večeře  č.2</td><td style="width: 450px;">Vepřový plátek na slanině, houskové knedlíky A: 1,3,7 <br />cena 37.00 Kč / 67.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Standardní jídlo 3 - večeře č.3</td><td style="width: 450px;">Zapečené těstoviny s uzeninou, okurka  A: 1,3,7,10<br />cena 25.00 Kč / 55.00 Kč</td></tr><tr><td style="width: 150px;" class="jidelnicek_druhy_jidel">Bezmasé jídlo - večeře č.4</td><td style="width: 450px;">Pečený lilek na másle, vařené brambory A:7<br />cena 38.00 Kč / 68.00 Kč</td></tr>
a co se týče tak url je kit.pef.czu.cz/danyweb
anonymníí
Profil *
Woo:
A kde je tedy chyba? Vždyť v odpovědi ta HTML data máš... Co více bys chtěl?
Keeehi
Profil
No, takže to poběží na jiné doméně -> javascriptem to nenačtete, jedině by student.czu.cz začal posílat hlavičku Access-Control-Allow-Origin: http://kit.pef.czu.cz.

Takže jediné co zbývá to tunelovat skrz PHP. Tedy pomocí PHP odešlete stejný požadavek jako na tom obrázku výše. Jelikož je to však schované za prohlášením, tak musíte nejdříve poslat požadavek stejný jako při přihlašování, obdržíte cookie PHPSESSID a tu použijete v druhém požadavku.
Woo
Profil
Keeehi:
ah tak, děkuju moc :)
Chamurappi
Profil
Reaguji na Keeehiho:
takže to poběží na jiné doméně -> javascriptem to nenačtete
Kdyby použil JSONP, jak naznačoval úvodní příspěvek, tak může načítat z libovolné domény, protože pak to de facto není AJAX, ale externí JS. Ale i to pochopitelně vyžaduje spolupráci ze strany serveru, kde jsou data – výstup se musí upravit, aby byl jako volání JS funkce.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0