Ajax, a MVC z Routerem, frameworkiem.

0

Czy jeśli mam odwołanie z ajaxa do kodu php to czy należy go odesłać do routera, czy może stworzyć inny plik, dedykowany dla ajaxa?

1

Ajax to zwykły request i Twojej aplikacji nie powinno to obchodzić. Jeżeli ktoś wykona get request pod https://mojastrona.com/clients/1 to w zależności od przesłanego Accept header powinieneś zwrócić daną reprezentację danych klienta o id 1. W przypadku geta z przeglądarki jest to text/html i wtedy zwracasz reprezentację klienta w postaci divów i stylów css, a jeżeli jest to application/json to zwracasz jsona itd.

To samo w przypadku posta. Jeżeli ktoś wykona post request submitując formularz z przeglądarki, to dane (Content-type header) będą w formacie x-www-form-urlencoded. Normalnie będziesz je miał w $_POST. Jeżeli ktoś prześle dane w postaci application/json, czyli innymi słowy wykona ajax request wystarczy je odpowiednio zmapować - czyt. zrobić json_decode - przed wysłaniem do odpowiedniej akcji w controllerze, przez co ten sie nawet nie zorientuje co jest grane.

Jeżeli będziesz wymagał całkowicie innej logiki ( więcej niż if ajax to zrób coś dodatkowego, albo zwróc widok lub json) to wtedy możesz zrobić osobny controller, ale routing zostaje ten sam, nie widzę potrzebny robienia osobnego. Może opisz problem, tzn. dlaczego uważasz, że potrzebny Ci jest osobny router/osobny plik dedykowany dla ajaxa? W zasadzie co rozumiesz przez osobny plik dedykowany dla ajaxa?

1 użytkowników online, w tym zalogowanych: 0, gości: 1