我在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.
答案 0 :(得分:0)
所以我不确定确切的问题,但在路线中添加以下内容 解决了问题
OPTIONS /api/question/:id controllers.Application.preflight(id)
预检终点只返回带有CORs标题的Ok。但我本以为CorsAction应该照顾这个。无论如何,继续前进。