jsonp i php |
jsonp i php |
29.03.2014, 11:18:17
Post
#1
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 8.07.2013 Ostrzeżenie: (0%) |
Witam. Mam taki kodzik:
A plik login.php jest taki:
Niestety to nie działa, cały czas wykonuje się error, czyli header na location.href Proszę o pomoc. |
|
|
29.03.2014, 11:20:47
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Zobacz z jakiej domeny uruchamiasz skrypt, a do jakiej wysyłasz żądanie Ajax.
EDIT: No tak, to JSONP. Podejrzyj narzędziem developerskim jaki jest status odpowiedzi i co zwraca żądanie. Ten post edytował trueblue 29.03.2014, 12:26:55 -------------------- |
|
|
29.03.2014, 14:29:55
Post
#3
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 8.07.2013 Ostrzeżenie: (0%) |
W sumie to nic tam nie widzę.
http://screencloud.net/v/FKd |
|
|
29.03.2014, 14:32:58
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Za mało. Kliknij w to żądanie i po prawej sprawdź co jest w zakładce Preview lub Response.
-------------------- |
|
|
29.03.2014, 14:41:08
Post
#5
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 8.07.2013 Ostrzeżenie: (0%) |
response
preview( nie dalo sie skopiowac) http://screencloud.net/v/zlWh |
|
|
29.03.2014, 14:51:16
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
No, to jak sam widzisz masz błąd.
Skrypt powinien zwracać JSON, a zwraca doklejony do niego HTML. W żądaniu Ajax prześlij dodatkową zmienną i w skrypcie sprawdź czy jest, jeśli jest, to drukuj tylko odpowiedź bez formularza, albo jeśli do skryptu nie idą inne zapytanie przez $_POST, to sprawdź $_SERVER['REQUEST_METHOD']=='POST' i zrób warunek jak wyżej. -------------------- |
|
|
29.03.2014, 15:02:54
Post
#7
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 8.07.2013 Ostrzeżenie: (0%) |
Usunalem html i tez nie dziala. Wyslana zmienna o wartosci "1" wyswietlilo bez problemu.
Edit Dodałem ifa z get callback na formularz i odpowiedź. Screen już bez wyświetlania wysłanej zmiennej przez Ajaxa. http://screencloud.net/v/txU Ten post edytował Cinamicom 29.03.2014, 15:15:58 |
|
|
29.03.2014, 15:11:17
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
A co teraz otrzymujesz w odpowiedzi?
-------------------- |
|
|
29.03.2014, 15:15:17
Post
#9
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 8.07.2013 Ostrzeżenie: (0%) |
Masz screena, wy edytowałem odpowiedź wyżej.
|
|
|
29.03.2014, 15:28:43
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
-------------------- |
|
|
29.03.2014, 15:43:03
Post
#11
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 8.07.2013 Ostrzeżenie: (0%) |
Bingo! Dziękuje Ci bardzo. Masz plusiki.
Ale jeszcze jest jeden problem. Nie zalezenie czy dam true czy false. Ajax odbiera mi zawsze jako success.. Jak wejdę w ten podgląd, to zwraca mi "error" true chociaż wykonało mi jako success. Ten post edytował Cinamicom 29.03.2014, 15:44:47 |
|
|
29.03.2014, 16:06:34
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Funkcja success jest wykonywana wtedy kiedy otrzymano odpowiedź od serwera, niezależnie od zawartej treści.
W samej funkcji musisz już sprawdzać jaką odpowiedź otrzymałeś i w zależności od tego przekierowywać na login.php lub nie. -------------------- |
|
|
29.03.2014, 16:11:24
Post
#13
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 8.07.2013 Ostrzeżenie: (0%) |
Ale w skrypcie mam if.
if jest ciastko succes = true else error true I jak ja mam to w funkcji sprawdzic, skoro ify nie dzialaja, bedę miał i to i to. |
|
|
29.03.2014, 16:17:13
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Mylisz pojęcia.
Treścią odpowiedzi, którą generujesz w PHP nie decydujesz czy się uruchomi funkcja success czy error. W success musisz wprowadzić if w zależności co otrzymasz w obiekcie response. -------------------- |
|
|
29.03.2014, 16:22:53
Post
#15
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 8.07.2013 Ostrzeżenie: (0%) |
Czyli to nie patrzy na moje ify i php.
Czyli zwraca mi error bo jest ostatni. I jak ja mam to sprawdzić co otrzymam? - otrzymam error bo na php nie patrzy. Ale można zrobić inaczej, zwrócić ciastko, i w js sprawdzić czy jest puste? Ten post edytował Cinamicom 29.03.2014, 16:31:02 |
|
|
29.03.2014, 16:28:24
Post
#16
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Na nic nie patrzy ani nie zerka:)
Oczywiście możesz zmienić "status" na inną nazwę, chciałem wskazać, że nie ma to powiązania z funkcją w Ajaxie. Możesz też zmienić odpowiedzi 1 i 0. W obydwu przypadkach musisz zmienić po stronie PHP i JS. -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 09:47 |