小编sik*_*iki的帖子

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

我正在使用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: …
Run Code Online (Sandbox Code Playgroud)

playframework playframework-2.0

4
推荐指数
1
解决办法
3389
查看次数

将列表转换为Array2D

我正在尝试将单个列表转换为多维Array2D.从基本上去[1; 2; 3][[1; 2; 3]].我不能只使用,List.toArray因为我正在使用一个API函数,它接受一个int[,]输入.

最好的方法是什么?

f# f#-3.0

4
推荐指数
1
解决办法
251
查看次数

为MySql键入提供程序

我一直在寻找一个关于如何连接到MySql数据库并使用F#类型提供程序的示例,但我在网上找不到任何东西.

任何人都可以给我一个线索吗?什么 - 如果有的话 - 我需要额外的包裹?我是否使用SqlDataConnectionSqlEntityConnection.

请原谅我的无知,但我完全迷失了.任何和所有的帮助表示赞赏.我喜欢类型提供者的想法,并且在功能编程方面有相当多的经验,但是围绕这个的设置让我感到满意.

mysql f# type-providers f#-3.0 f#-data

3
推荐指数
1
解决办法
1636
查看次数

异步数据库查询

我刚刚开始使用F#和.Net但是经过一些谷歌搜索我没有找到这个例子.如果这太简单,我会提前道歉.

我正在尝试查询数据库并异步执行.例如,我有一个像这样的函数:

let queryExample name = 
    query {for f in foo do
           where (f.name = name)
           select f.name}
    |> Seq.toList
Run Code Online (Sandbox Code Playgroud)

现在,我将如何制作异步版本?query不返回Async<'a>类型.

f# f#-3.0

3
推荐指数
1
解决办法
1041
查看次数

与Play的EssentialAction合作

我正在使用Play 2.2.1,我正在尝试编写自己的Action来处理CORS请求.我发现了 这个,但不幸的是它没有编译.

仅供参考,这是(稍加修改)的代码:

import play.api.mvc._
import scala.concurrent.ExecutionContext

case class CorsAction(action: EssentialAction) extends EssentialAction {
  def apply(request: RequestHeader) = {
    implicit val executionContext: ExecutionContext = play.api.libs.concurrent.Execution.defaultContext
    val origin = request.headers.get("Origin").getOrElse("*")

    if (request.method == "OPTIONS") {
      val cors = Action { request =>
        Ok("").withHeaders(
          "Access-Control-Allow-Origin" -> origin,
          "Access-Control-Allow-Methods" -> "GET, POST, PUT, DELETE, OPTIONS",
          "Access-Control-Allow-Headers" -> "Accept, Origin, Content-type, Authorization, X-Auth-Token, " +
            "X-HTTP-Method-Override, X-Json, X-Prototype-Version, X-Requested-With",
          "Access-Control-Allow-Credentials" -> "true",
          "Access-Control-Max-Age" -> (60 * 60 * 24 * 30).toString)
      } …
Run Code Online (Sandbox Code Playgroud)

scala playframework playframework-2.0 playframework-2.2

2
推荐指数
1
解决办法
1888
查看次数