播放框架AngularJs CORS post json

时间:2014-03-23 02:35:47

标签: json scala post playframework-2.0 cors

我在AngularJs中有一个前端和一个Playframework 2 Scala后端。查看this将COR添加到后端 - 我有两个端点GET和POST

GET         /api/question/:id              controllers.Questions.getQuestion(id: String)
POST        /api/question/:id              controllers.Questions.postQuestion(id: String)

另一个响应中提供的此解决方案适用于GET,但不适用于POST

def getQuestion(key:String) = CorsAction{
    ....

  }




def postQuestion(key:String) = CorsAction(parse.json){
               req =>
      ........
  }

我理解的是CORsAction(扩展ActionBuilder)也可以接受bodysarser的方法,因此也应该基本上适用于POST请求。

这是我从前端点击POST时在浏览器控制台中看到的内容。

OPTIONS http://localhost:9000/api/question/abc123 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3001' is therefore not allowed access. angular.js:7997
XMLHttpRequest cannot load http://localhost:9000/api/question/abc123. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3001' is therefore not allowed access. 

1 个答案:

答案 0 :(得分:0)

所以我不确定确切的问题,但在路线中添加以下内容 解决了问题

OPTIONS        /api/question/:id             controllers.Application.preflight(id)

预检终点只返回带有CORs标题的Ok。但我本以为CorsAction应该照顾这个。无论如何,继续前进。