无法使用邮递员执行localhost POST调用(播放框架2.6)

时间:2017-07-10 07:52:04

标签: scala playframework playframework-2.0 postman

它太奇怪了,我在localhost上测试我的app控制器方法:9000使用postman,对于我的GET api方法我没有问题访问并获得响应,但对于POST api方法我得到:

  

play.filters.CSRF - [CSRF]检查失败,因为找不到令牌   头

永远不会看到这条消息......

我有最简单的控制器:

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

我的路线:

POST    /update    controllers.MyController.update

邮递员即将获得403禁止..

邮递员地址:

http://localhost:9000/update

有人知道为什么会这样吗??

2 个答案:

答案 0 :(得分:3)

如果查看Play ScalaCsrf Docs,则会配置CSRF过滤器,并在给出任何条件时进行检查:

  
      
  • 请求方法不是GET,HEAD或OPTIONS。
  •   
  • 请求包含一个或多个Cookie或授权标头。
  •   
  • CORS过滤器未配置为信任请求的来源。
  •   

如果您根本不想要CSRF保护,可以通过添加以下配置来禁用过滤器(Play Filters Docs中的更多信息:

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

答案 1 :(得分:0)

如果您只想针对某条路由禁用CSRF,则可以执行以下操作:

+ nocsrf
POST    /update    controllers.MyController.update