2017-07-10 2 views
3

Es ist so seltsam, meine App Controller-Methoden auf localhost testen: 9000 mit Postman, für meine GET API-Methoden habe ich kein Problem zugreifen und Antwort, aber für eine POST api Methoden im bekommen:Fehler beim Ausführen von localhost POST-Aufruf mit Postman (play Framework 2.6)

play.filters.CSRF - [CSRF] fehlgeschlagen überprüfen, weil kein Token in Header gefunden

diese Nachricht nie seeen ...

ich habe einfachste Steuerung:

def invoiceQA(): Action[JsValue] = Action.async(parse.json) { request => 
    Future{Ok(Json.toJson("""{"message": "got your json"}"""))} 
    } 

meine Route:

POST /update controllers.MyController.update 

in Postbote im 403 immer verboten ..

Postbote Adresse:

http://localhost:9000/update 

weiß jemand, warum das so ist ..?

Antwort

2

Wenn man sich die Play ScalaCsrf Docs aussehen, wird die CSRF-Filter konfiguriert und die Überprüfung durchgeführt wird, wenn eine der Bedingungen gegeben sind:

  • Die Anfrageverfahren ist nicht GET, HEAD oder OPTIONS.
  • Die Anfrage enthält einen oder mehrere Cookie- oder Autorisierungsheader.
  • Der CORS-Filter ist nicht so konfiguriert, dass er dem Ursprung der Anforderung vertraut.

Wenn Sie CSRF überhaupt nicht wollen Schutz, können Sie einfach den Filter deaktivieren, indem Sie die folgende Konfiguration (weitere Informationen in der Play Filters Docs:

play.filters.disabled+=play.filters.csrf.CSRFFilter 
Verwandte Themen