I have a controller which is eventually going to be set up for POSTs and GETs, but the weird thing is I can only access it through localhost/index.php?p=actions/twoFA/get where twoFA is my plugin handle and get is an action method in my controller. How can I make it so that it behaves like all the examples online where I could go to localhost/actions/twoFA/get? What's happening? Also, my actionTrigger is set to actions and I have not set up any site routes in my plugin.

UPDATE: I have decided to make this work a little differently, and I therefore do not need any help.

  • Went ahead and voted to close as OP stated it's no longer valid.
    – Brad Bell
    Apr 4 '18 at 22:29

In Craft 3 the csrf token validation in the general.php config is set to true by default. In order to request your controller with post requests you have to turn it off or include the token


{% set csrfTokenName = craft.app.config.general.csrfTokenName %}         
{% set csrfToken = craft.app.request.csrfToken %}     
<input type="hidden" name="{{ csrfTokenName }}" value="{{ csrfToken }}">
  • this doesn't really answer my question
    – WampyCakes
    Apr 4 '18 at 20:50
  • Seems like I missunderstood it. I thought it was about not being able to access it via POST request Apr 4 '18 at 21:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.