Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SF][Symfony2][SF2] 302 Found, Firebug problem z odpowiedzią JSON
damianooo
post 5.07.2016, 08:56:54
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Nie wiem czy dobrze przesyłam dane AJAXem w formacie JSON

Firebug pokazuje 302 Found a powinien chyba 200 OK.
W zakładce Net -> Response powinien być widoczny wysyłany obiekt JSON a jest tylko treść strony.

Co może być nie tak ?

czy mam to dobrze zapisane w Symfony?

Kontroler:

  1. /**
  2.   * @Route(
  3.   * "/types",
  4.   * name = "typerka_types"
  5.   * )
  6.   * @Template()
  7.   *
  8.   */
  9. public function typesAction(Request $request){
  10.  
  11. $repository = $this->getDoctrine()->getRepository('MyTyperkaBundle:Match');
  12. $matches = $repository->getMatchesPerMatchday(1);
  13.  
  14. if ($request->getMethod() == 'POST') {
  15.  
  16. $request = $this->getRequest();
  17. $req = $request->request->all();
  18. ...


TWIG:

  1. {% extends "MyTyperkaBundle::base.html.twig" %}
  2. {% block content %}
  3. <p>Witaj {{ app.user ? app.user.username }} </p>
  4.  
  5. {#<form action="{{ path('typerka_types') }}" method="post">#}
  6. <form id="form">
  7. ...
  8. ...
  9. <input type="submit" value="Wyślij"/>
  10. </form>
  11.  
  12. <script type="text/javascript">
  13.  
  14. $(function(){
  15. $("#form").submit(function(e){
  16. var form=$(this);
  17. $.ajax({
  18. url:"{{ path('typerka_types') }}",
  19. dataType:"JSON",
  20. type:"POST",
  21. data:form.serialize(),
  22. success:function(){
  23. console.log("jest ok");
  24. },
  25. error: function() {
  26. console.log("Wystąpił błąd");
  27. form.get(0).reset();
  28. }
  29. });
  30. e.preventDefault();
  31. });
  32. });
  33.  
  34.  
  35. {% endblock %}



Ten post edytował damianooo 5.07.2016, 08:50:36
Go to the top of the page
+Quote Post
ohm
post 5.07.2016, 09:56:58
Post #2





Grupa: Zarejestrowani
Postów: 621
Pomógł: 144
Dołączył: 22.12.2010

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


A masz obsługę JSONa? Bo z tych fragmentów widzę że wysyłasz dane z formularza tak jak byś to robił normalnie, bez użycia ajaxa, więc dostajesz zwykły wyrenderowany zwrot (@Template)
Go to the top of the page
+Quote Post
damianooo
post 5.07.2016, 09:59:56
Post #3





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


co znaczy obsługę JSONa ? ...
chodzi Ci o odebranie danych w kontrolerze ?

Go to the top of the page
+Quote Post
ohm
post 5.07.2016, 10:40:44
Post #4





Grupa: Zarejestrowani
Postów: 621
Pomógł: 144
Dołączył: 22.12.2010

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


Jak chcesz komunikować się przez JSONa to kontroler musi wysyłać JsonResponse.
Przeanalizuj sobie jak to wygląda na przykładach http://intelligentbee.com/blog/2015/01/19/...forms-and-ajax/
Go to the top of the page
+Quote Post
damianooo
post 6.07.2016, 12:56:40
Post #5





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Nie rozumiem tego chyba.
Ten przykład nie bardzo wiem jak wykorzystać u mnie.
Jak to u mnie w kodzie powinno wyglądać ?

Mam formularz, który po wypełnieniu danymi chcę przesłać te dane do bazy danych.
Technikę przesyłu wybrałem Ajax typ: JSON.
W kontrolerze odbieram tylko przesłane dane aby ja później ewentualnie obrobić i zapisać do bazy.

Możesz wyjaśnić mi działanie JSONa tak na chłopski rozum ?






ok poradziłem sobie ...

trzeba było dodać w kontrolerze przestrzeń:
use Symfony\Component\HttpFoundation\JsonResponse;
a następnie użyć tej klasy w akcji zastępując po prostu:
return $this->redirect($this->generateUrl('typerka_types'));
poniższym kodem z przykładu:
return new JsonResponse(array('message' => 'Success!'), 200);

Teraz otrzymuję normalnie w firebugu 200 OK i mam w zakłądce Response obiekt JSON, widać również w końcu w firebugu zakładkę JSON.
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 Wersja Lo-Fi Aktualny czas: 1.06.2024 - 04:22