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 (IMG:style_emoticons/default/wink.gif)
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 (IMG:style_emoticons/default/wink.gif) np.
  1. $type = $_POST['type'];


Ten post edytował drozdii07 14.08.2011, 11:29:11
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?
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.
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 (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 18:48