konto usunięte

Temat: responseText zwraca bajzel w Operze

witam.

mam skrypt, gdzie korzystam z 'surowego' ajaxa bez zadnych frameworkow (dopiero sie ucze, a wychodze z zalozenia ze zanim zaloze firme budowlana najpierw pracuje na budowie;) i napotkalem pewien problem. w Firefoxie wszystko idzie ok, responsteText zwraca to co sobie echo'uje w skrypcie. natomiast na IE w ogole nie dziala, a na Operze zwraca mi caly dokument HTML, ale w dodatku nie tego pliku ktory trzeba, tylko index.php, a zapytanie ajaxowe mam sobie w post_comment.php , w ktorym oto kodu html nie ma w ogóle.

link do kodu: http://phpfi.com/321269

Szukałem na Google, ale nic sensownego nie znalazłem.

konto usunięte

Temat: responseText zwraca bajzel w Operze

Jakub Świegot:
witam.

mam skrypt, gdzie korzystam z 'surowego' ajaxa bez zadnych frameworkow (dopiero sie ucze, a wychodze z zalozenia ze zanim zaloze firme budowlana najpierw pracuje na budowie;) i napotkalem pewien problem. w Firefoxie wszystko idzie ok, responsteText zwraca to co sobie echo'uje w skrypcie. natomiast na IE w ogole nie dziala, a na Operze zwraca mi caly dokument HTML, ale w dodatku nie tego pliku ktory trzeba, tylko index.php, a zapytanie ajaxowe mam sobie w post_comment.php , w ktorym oto kodu html nie ma w ogóle.

link do kodu: http://phpfi.com/321269

Szukałem na Google, ale nic sensownego nie znalazłem.

Zacznij przyswajać frameworki ... po co pisać coś co już jest napisane ;)

konto usunięte

Temat: responseText zwraca bajzel w Operze

Stanisław Głogowski:
Zacznij przyswajać frameworki ... po co pisać coś co już jest napisane ;)

Normalnie dobrze jest na początku sprawdzić, jak to ma działać od podstaw, ale w przypadku AJAX-a zgadzam się z opinią wyżej. Sam 2 lata temu postanowiłem coś zrobić w "czystym" AJAX-ie i, uwierz mi, szkoda nerwów. Zainteresuj się od razu Prototype, JQuery, DOJO, Ext, Mootools, czy czymś podobnym (ja używam tego pierwszego, ale chodzą słuchy, że bardziej intuicyjny jest ten drugi).Jakub B. edytował(a) ten post dnia 02.06.08 o godzinie 11:22

konto usunięte

Temat: responseText zwraca bajzel w Operze

Postanowiłem wykorzystać advAJAX (1.1) i niestety ten sam problem..

dodam tylko, że strony includowane są wewnątrz indexu.php, i mam sobie formularzyk wlasnie z przypisana akcja ajax.

wszystko ok, nawet na IE zaczelo chulać na advAJAX, a opera dalej nie do zdarcia..

EDIT

znalazłem w końcu przyczynę, także dla przyszłych pokoleń: Opera wymaga całkowitej ścieżki do pliku dla zapytania Ajaxowego :)

jeśli damy sobie "syf.php" to nie ma szans, ale
"http://localhost/strona/syf.php" poszło bez problemu.

Zdrówko.Jakub Świegot edytował(a) ten post dnia 02.06.08 o godzinie 12:22

konto usunięte

Temat: responseText zwraca bajzel w Operze

Jakub Świegot:
Postanowiłem wykorzystać advAJAX (1.1) i niestety ten sam problem..

dodam tylko, że strony includowane są wewnątrz indexu.php, i mam sobie formularzyk wlasnie z przypisana akcja ajax.

wszystko ok, nawet na IE zaczelo chulać na advAJAX, a opera dalej nie do zdarcia..

EDIT

znalazłem w końcu przyczynę, także dla przyszłych pokoleń: Opera wymaga całkowitej ścieżki do pliku dla zapytania Ajaxowego :)

jeśli damy sobie "syf.php" to nie ma szans, ale
"http://localhost/strona/syf.php" poszło bez problemu.

Zdrówko.

new Ajax.Request(
'url.php',
{
onComplete : function(req}
{
alert(req.responseText};
}
}
);

Cała filozofia protokołu AJAX w prototype ...Stanisław Głogowski edytował(a) ten post dnia 03.06.08 o godzinie 09:25
Piotr Lewandowski

Piotr Lewandowski Programista
aplikacji
internetowych (PHP,
MySQL, SF2, Mag...

Temat: responseText zwraca bajzel w Operze

Jakub Świegot:
znalazłem w końcu przyczynę, także dla przyszłych pokoleń: Opera wymaga całkowitej ścieżki do pliku dla zapytania Ajaxowego :)

Hmm... Pierwszy raz się z tym spotykam. Ciekawy przypadek :)

konto usunięte

Temat: responseText zwraca bajzel w Operze

Piotr Lewandowski:

Hmm... Pierwszy raz się z tym spotykam. Ciekawy przypadek :)

Mi się to kiedyś w Firefox-ie zdarzało. Ale to było dawno...

konto usunięte

Temat: responseText zwraca bajzel w Operze

maly offtopic:

na IE 6 nie dziala

input[type=text] {

}

w CSS ;)
Kamil Kukiełka

Kamil Kukiełka Architekt Systemów,
Getin Noble Bank
S.A.

Temat: responseText zwraca bajzel w Operze

Jakub Świegot:
var params = 'nick='+escape(encodeURI(nick.value))+'&comment='+escape(encodeURI(comment.value))+'&content_type='+content_type+'&content_id='+content_id;

Niepotrzebnie używasz metody escape - wystarczy encodeURI.

Jeśli responseText jest pusty - "zlep" urla i sprawdź czy przeglądarka wczytuje jakąś zawartość.
Jakub Świegot:
jeśli damy sobie "syf.php" to nie ma szans, ale "http://localhost/strona/syf.php" poszło bez problemu.

Mam wątpliwości co do tego stwierdzenia :) Czysty AJAX nie jest cross-domain i jako url podaje się ścieżkę względną.

Pozdro

konto usunięte

Temat: responseText zwraca bajzel w Operze

no wlasnie tez to wiem ;]

ale na operze nie chcialo pojsc.

Temat: responseText zwraca bajzel w Operze

Kamil Kukiełka:
Jakub Świegot:
var params = 'nick='+escape(encodeURI(nick.value))+'&comment='+escape(encodeURI(comment.value))+'&content_type='+content_type+'&content_id='+content_id;

Niepotrzebnie używasz metody escape - wystarczy encodeURI.


albo:

encodeURI('nick='+nick.value+'&comment='+comment.value+'&content_type='+content_type+'&content_id='+content_id);

albo:

'nick='+encodeURIComponent(nick.value)+'&comment='+encodeURIComponent(comment.value)+'&content_type='+content_type+'&content_id='+content_id;

encodeURI() nie escapuje znakow "&", "+", i "=" (i czegos tam jeszcze)
bespieczniej jest uzyc encodeURIComponent()

konto usunięte

Temat: responseText zwraca bajzel w Operze

dzięki :).

konto usunięte

Temat: responseText zwraca bajzel w Operze

btw. napotkalem taki problem - wywyłania AJAX działają, jeśli witrynę wywołam jako http://strona.pl, natomiast http://strona.pl już nie pozwala na działanie fragmentów ajaxowych.
czy to wina <base href, który mam ustawiony bez www ?

i co ewentualnie poczynić, by działało i tak, i tak?
widze, ze niektore serwisy takie jak np. Wykop przepisują adres w ten sposób, że automatycznie dodają www do adresu. narazie zrobiłem rewrite z usuwaniem www z adresu, pragnę jednak by wywołania te działały i tak i tak.Kuba Świegot edytował(a) ten post dnia 03.07.08 o godzinie 18:49

Temat: responseText zwraca bajzel w Operze

do sicezki bezwzglednej w obrebie hosta skorzystaj z self.location

http://domena i domena to w rzeczywistosci dwa rozne hosty (tak jak kazda inna subdomena ktora moze wskazywac na zupelnie inny serwer) i sa one traktowane jako zupelnie inne zrodla wywolania dla ajaxa.

glowy nie daje ale nie powinno byc problemow ze sciezkami wzglednymi w operze (no chyba, ze znowu "security reasons" i to zablokowali ;)

troche offtopic
-->
przekierowania z domena na http://domena sa robione glownie ze wzgledow SEO, zwroc uwage, ze sa to przekierowania 301 (moved permamently) stosuje sie je po to aby zawartosc serwisu nie byla potraktowana jako klon pod dwoma roznymi hostami jak rowniez po to aby wywolania z przegladarki nie 'katowaly' ponownie serwera w poszukiwaniu przekierowania (301 powinno byc zapamietane po stronie klienta).
btw. oblsuge przekierowan i translacji urli polecam zrobic w kontrolerze aplikacji (najlepiej cahe w ram) bo serwerowe w systemie plikow (szczegolnie apache) negatywnie wplywaja na wydajnosc przy duzym ruchu.
--<

konto usunięte

Temat: responseText zwraca bajzel w Operze

ahm, czyli sugerujesz coś w stylu

var loc = self.location;
document.write("<base href=\""+loc+"\" />");

?

czy miales na mysli podczas zapytan ajaxowych korzystac z self.location+"/pliczek.php" (dla przykladu).

pozdrowkaKuba Świegot edytował(a) ten post dnia 05.07.08 o godzinie 01:07

Temat: responseText zwraca bajzel w Operze

base href bym sobie odpuscil (z tego co znalazlem jest to bug w operze poprawiony w wersji 9.5 - #309119), self.location przy requestach powinnno byc odporne na podobne niespodzianki w przyszlosci ze sciezkami relatywnymi.

Następna dyskusja:

"inwestycja" się zwraca?




Wyślij zaproszenie do