Ah, yes, the devtime cross-origin misery... :D
The issue is that you're technically running the backend on a different domain (the port is different), so the request from vue gets blocked.
You could either setup a reverse proxy (which sits on port 90, and any route that starts with /api
gets forwarded to port 8000, the rest is forwareded to port 8080). This way you simulate the production environment (where you NEED to set up this correctly).
The other solution is to allow cross-origin requests on your backend in you development environment. Here is a topic about just that: https://forum.phalcon.io/discussion/443/enable-cross-origin-resource-sharing
But this introduces a fault-point, since your dev and prod code will differ.
Regarding how to only accept POST requests: https://docs.phalcon.io/4.0/en/routing
Basically you just specify a whitelist array in the httpMethods
argument.