Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] .ajax zawsze zwraca error
flip02
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.08.2011

Ostrzeżenie: (0%)
-----


Zawsze dostaje error, co tym razem jest nie tak? W firebugu nie pokazuja mi się żadne errory.

  1. $('#stype').change(function(){
  2. $.ajax({
  3. type: "POST",
  4. url: "http://localhost/ajax.php",
  5. data: "type="+ $('#stype').attr('value') +"&color="+ $('#scolor').attr('value') +"&pattern="+ $('#spattern').attr('value'),
  6. dataType: "html",
  7. success: function(){
  8. alert("cuks");
  9. },
  10. error: function(msg){alert(msg)}
  11. })});


w pliku ajax.php mam tylko <p>cos</p>
Go to the top of the page
+Quote Post
#luq
post
Post #2





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


Sprawdź jak leci request w firebugu (jaką dokładnie odpowiedź zwraca).
Poza tym o wieeeele wygodniej jest podawać pole data jako objekt wink.gif


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
drozdii07
post
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 39
Dołączył: 6.12.2010
Skąd: localhost

Ostrzeżenie: (0%)
-----


Przypisz te wszystkie wartości (type itd.) przed AJAX'em.

  1. type = $('#stype').attr('value');
  2. // Tak samo zrób z resztą, a później..
  3.  
  4. $.ajax({
  5. type: "POST",
  6. url: "http://localhost/ajax.php",
  7. data: {type: type, color: color, pattern: pattern},
  8. dataType: "html",
  9. success: function(){
  10. alert("cuks");
  11. },
  12. error: function(msg){alert(msg)}
  13. })});

W pliku ajax.php odbierasz sobie to normalnie POST'em wink.gif np.
  1. $type = $_POST['type'];


Ten post edytował drozdii07 14.08.2011, 11:29:11


--------------------
Wspieram akcję "jQuery i AJAX to nie język programowania"
Go to the top of the page
+Quote Post
flip02
post
Post #4





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.08.2011

Ostrzeżenie: (0%)
-----


coś robię dalej źle, bo w odpowiedzi nic nie dostaję i pewnie dlatego wywala ciągle błąd. Moje nagłówki:

  1. Response Headers
  2.  
  3. HTTP/1.1 200 OK
  4. Date: Sun, 14 Aug 2011 11:46:43 GMT
  5. Server: Apache/2.2.16 (Ubuntu)
  6. X-Powered-By: PHP/5.3.3-1ubuntu9.5
  7. Vary: Accept-Encoding
  8. Content-Encoding: gzip
  9. Content-Length: 20
  10. Keep-Alive: timeout=15, max=100
  11. Connection: Keep-Alive
  12. Content-Type: text/html
  13.  
  14.  
  15. Request Headers
  16.  
  17. OPTIONS /ajax.php HTTP/1.1
  18. Host: localhost
  19. User-Agent: Mozilla/5.0 ....
  20. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  21. Accept-Language: en-us,en;q=0.5
  22. Accept-Encoding: gzip,deflate
  23. Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
  24. Keep-Alive: 115
  25. Connection: keep-alive
  26. Access-Control-Request-Method: POST
  27.  


Origin wyżej wygląda tak : http://www.localhost:8085

ajax.php - tu robie echo z paragrafem.

Ten post edytował flip02 14.08.2011, 12:56:46
Go to the top of the page
+Quote Post
#luq
post
Post #5





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


Dostajesz odpowiedź HTTP 200 więc wszystko powinno być okej.
Rozumiem że odpala Ci się funkcja podana jako parametr error?

Możesz pokazać ten kod jakoś live na widocznym dla nas serwerze?


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
flip02
post
Post #6





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.08.2011

Ostrzeżenie: (0%)
-----


OK, wrzuciłem na serwer 2 pliki i działa. Zawartość jak wyżej z różnicą, że url wskazuje na ajax.php a nie http://localhost/ajax.php. Jedyna róznica jaką widzę to to, że plik ajax.php i test.html są w tym samym katalogu. U mnie tak nie jest, skryp wywoływany jest z url
http://www.cars.pl.localhost:8085/frontend.../3/nazwa-2#type a odwołuję się w ajaxie do http://localhost/ajax.php i problem widziałbym chyba tylko tu... ale nie widzę w tym sensu.

Wygląda na to, że nic nie jest postowane do ajax.php. W debugerze nie mam nawet zakładki POST, a Response jest pusta. Nie wiem o co chodzi.


Edycja:
No i właśnie nic się nie dzieje, bo tu już w grę wchodzi crossdomain.

Ten post edytował flip02 15.08.2011, 00:16:52
Go to the top of the page
+Quote Post
#luq
post
Post #7





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


Jeśli są inne domeny to powinieneś dostać błąd (jeśli nie wyłączyłeś w przeglądarce ustawień the same origin policy).
Ogólnie najłatwiej obejdziesz to wysyłając requesta ajaxowego po plik na swoim serwerze (tym samym na którym stoi plik z wysyłaniem requesta) i tam po stronie PHP pobierasz dane z innego serwera.


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
flip02
post
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.08.2011

Ostrzeżenie: (0%)
-----


tak widziałem takie rozwiązanie smile.gif Dzięki.
Mogłem się wcześniej kapnąć, że chodzi właśnie o cross bo przy post w debugerze stało jak wół OPTIONS.

Ten post edytował flip02 15.08.2011, 21:22:15
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 15:17