Hallo Rolf,
AJAX - ist eine Technik des Web 2.0, und die jQuery-Methode ist nach dieser Technik benannt. AJAX stand für Asynchronous JavaScript And XML. Man ist aber nicht auf XML als Content beschränkt und daher sollte X eher als "X-beliebiger Inhalt" gelesen werden.
Wenn Du per JavaScript Daten nachlädst, sei es per $.ajax, XMLHttpRequest oder fetch, dann machst Du AJAX (Disclaimer: XMLHttpRequest hat auch einen "synchronen" Modus. Aber den sollte man meiden).
danke für die Erklärung!
Controller im public-Ordner - wo hast Du denn deine übrigen Controller? Anderswo? Über ein Routing identifiziert? Na dann - nutze das Routing auch für diesen AJAX-Request. Wie auch immer Du Deine URIs gerne gestalten möchtest - das hängt nur von deinem Router ab,
- fetch("/api/checkUser/borisbaer")
- fetch("/api/checkUser/borisb%C3%A4r")
- fetch("/CheckUser?name=borisb%C3%A4r")
Alles machbar. Ob Du API Funktionen über einen Ordner "api" bereitstellst, ist nicht zwingend. Ich mach das so in meinen Seiten.
Wohin - ja was weiß ich denn? Das ist deine Codebasis. Wenn Du einen API Controller erstellst und der sich mit dem Signup-Controller den Code teilt, können beide Controller im Controller-Ordner sein und die Worker-Klasse mit dem eigentlichen Code in classes. Die Architektur deines Routers (über den wir mal diskutiert haben, den ich aber mit allen Pros und Cons nicht mehr im Kopf habe) mag da auch was vorgeben.
Mir ist ein Denkfehler unterlaufen. Ich dachte, ich müsste im fetch-Befehl auf die entsprechende Controller-Datei verweisen, also VerifyUsername.php oder so mit absolutem Pfad. Aber der fetch-Befehl richtet sich ja auch danach, was im Router steht! Demnach kann ich einfach eine URL im fetch-Befehl schreiben und diese dann so im Router registrieren, dass sie zur richtigen Controller-Klasse führt. Dann muss ich nichts im public-Ordner speichern, sondern kann die Datei mit der VerifyUsername-Klasse getrost bei den anderen Controllern lagern, und zwar in app/controllers.
🤦♂️
Grüße
Boris