播放路由配置完全忽略Http OPTIONS请求

sik*_*iki 4 playframework playframework-2.0

我正在使用Play 2.2.1.我的路由文件中有以下路由配置:

OPTIONS       /*path          controllers.Application.options
GET           /               controllers.Application.index
...some more routes
Run Code Online (Sandbox Code Playgroud)

我在Applications控制器中进行了以下设置:

package controllers

import play.api.mvc._

object Application extends Controller {

  def index = Action {
    Ok(views.html.index())
  }

  def options = Action {
    Ok("").withHeaders(
      "Access-Control-Allow-Origin" -> "*",
      "Access-Control-Allow-Methods" -> "GET, POST, PUT, DELETE, OPTIONS",
      "Access-Control-Allow-Headers" -> "Accept, Origin, Content-type, X-Json, X-Prototype-Version, X-Requested-With",
      "Access-Control-Allow-Credentials" -> "true",
      "Access-Control-Max-Age" -> (60 * 60 * 24).toString
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用curl测试OPTIONS请求时,它会被播放完全忽略.

curl -X OPTIONS --include 'http://localhost:9000/foo/139'
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

HTTP/1.1 404 Not Found
Content-Type: text/html; charset=utf-8
Content-Length: 7045



<!DOCTYPE html>
<html>
    <head>
        <title>Action not found</title>

...some more head junk

    <body>
        <h1>Action not found</h1>

        <p id="detail">
            For request 'OPTIONS /foo/139'
        </p>



                <h2>
                    These routes have been tried, in this order:
                </h2>

                <div>

            <pre><span class="line">1</span><span class="route"><span class="verb">GET</span><span class="path">/</span><span class="call">controllers.Application.index</span></span></pre>

... more routes but none of them are for the OPTIONS request            
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?提前致谢!

bie*_*ior 7

*path分段做点什么- 即使没什么......

路线:

OPTIONS    /          controllers.Application.options(path: String ?= "")
OPTIONS    /*path     controllers.Application.options(path)
Run Code Online (Sandbox Code Playgroud)

行动:

def options(path: String) = Action {
  Ok("").withHeaders(
    "Access-Control-Allow-Origin" -> "*",
    "Access-Control-Allow-Methods" -> "GET, POST, PUT, DELETE, OPTIONS",
    "Access-Control-Allow-Headers" -> "Accept, Origin, Content-type, X-Json, X-Prototype-Version, X-Requested-With",
    "Access-Control-Allow-Credentials" -> "true",
    "Access-Control-Max-Age" -> (60 * 60 * 24).toString
  )
}
Run Code Online (Sandbox Code Playgroud)

有用