04. april 2012 - 10:10Der er
14 kommentarer og 1 løsning
jQuery ajax problemer
Hejsa. Jeg benytter nedenstående script til at kalde ajax requests, og det virker fint for mig. Der er dog desværre nogle brugere der oplever at det ikke virker, og jeg kender desværre ikke meget til deres browser setup osv, så det jeg ville høre er om der findes en metode der kan gøre nedenstående lidt mere "fail safe" ?
På forhånd tak:
var xhr; function Fetch(afile,adivr) {
// Process Ajax var htm = afile.split('?'); var xhr = $.ajax({ type: "GET", url: htm[0], data: htm[1], cache: false, success: function(html){ gi("loaderdiv").style.display='none';
$(gi(adiv)).fadeIn(100); $('#'+adiv).html(html); } }); // Set global process ID window['xhr'] = xhr; return false; }
Nej det er klart, men så blev det tilgengæld en del mere komplekst.
Jeg er nu nået frem til at det drejer sig om PHP sessions.
Scriptet checker efter en session, og hvis den ikke er der skal den redirecte med lidt JS. Den del virker fint i alle browsere, men i safari, kan jeg ikke få adgang til denne session.
Så spørgsmålet er nu og der er en helt anden metode der skal bruges i safari når man vil store en session ?
Jeg bruger <? session_start(); $_SESSION['test'] = "bla"; ?>
Men i safari er denne session altså ikke tilgængelig
Jo, sites som Facebook og Google prøver at bruge cross domain cookies for at kompromitere og snage i brugernes privatliv. Desværre er skræmmende mange blevet så dybt afhængige af Facebook, at de blæser på at være under tættere overvågning end nogen diktaturstat nogensinde har kunnet drømme om at etablere.
Godt nok hører Safari - sammen med Google Chrome - til i bunden af markedet, hvad sikkerhed angår, men her har de om ikke andet tænkt sig en smule om.
Problemet er ikke, at Safari ikke modtager cross domain cookies. Det er, at du helt frivilligt kan få den vanvittige tanke at basere din applikation på en teknik, der kompromiterer dine brugeres privatliv. 'Nyttige idioter' kaldte man vist den slags under Den Kolde Krig. Dengang, det var Stasi - og ikke Facebook og Google - man fodrede med informationer med lusket oprindelse *o)
Når man bygger en fb app, er man nødt til at benytte sig af de teknikker facebook har stillet til rådighed, for at kunne få en brugers ID.
Den ene af dem er at skulle gemme en brugers id i en session for så at kunne hente de brugeroplysninger der skal bruges. Ligesom et login på en hvilken som helst anden side.
At facebook ikke har lavet deres biblioteker ordentligt kan jeg ikke udtale mig om, men det er nu engang sådan det skal gøres.
Når det så er sagt, så er det kun safari der har det her problem og altså ikke Chrome, ie, ff
Det ved jeg alt om. Det er en af grundene, jeg ikke laver FB-apps - og ikke har en FB-konto. Der er jo nemlig ingen, der siger, at det skal gøres sådan. Man kan jo bare lade være med at lave app'en =)
Nej, Google har stor interesse i at bruge cross domain cookies for at kunne spionere blandt sine brugere, så de har har næppe implementeret denne sikkerhedsfeature i Chrome ... desværre
Vi kan sikkert hurtigt blive enige om det er noget bras. Men det giver nogle fantastiske muligheder for at udvikle apps med en relativt høj success rate, hvad enten man kan lide det eller ej ;)
Hvor om alting er, så bliver det nok ikke så ligetil at finde løsningen.
Men jeg ønsker ikke at booste min successrate på bekostning af brugernes sikkerhed eller kompromitering af deres privatliv. Jeg vedgår dog gerne, at det bliver vanskeligere og vanskeligere at være webudvikler og samtidig udvise etisk forsvarlig adfærd. Det er snart ved at være mere anstændigt at være gadeluder! :o|
Jeg lukker ned her. Takker for inputs, og hvis i skal have points må i sige til :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.