用管道工设置CORS请求的cookie

时间:2018-01-18 11:42:51

标签: cors plumber

在处理cors连接时是否可以在管道工中设置cookie?

我有一个有角度的应用程序(比如运行在localhost:4200上)和管道工api(比如localhost:8000),只是试图使用文档中的示例代码:

#* @get /sessionCounter
function(req){
  count <- 0
  if (!is.null(req$session$counter)){
    count <- as.numeric(req$session$counter)
  }
  req$session$counter <- count + 1
  return(paste0("This is visit #", count))
}

我在rooter上注册了sessionCookie()钩子,所以当我在浏览器中访问localhost:8000 / sessionCounter时,这是有效的,但不是来自角度应用程序。

我在这里缺少任何设置吗?

我只为服务cors请求添加了res$setHeader("Access-Control-Allow-Origin", "http://localhost:4200"),我还需要别的东西吗?

1 个答案:

答案 0 :(得分:0)

我不确定在CORS边界设置cookie的限制是什么,或者是否允许它。

但是,一种解决方法是在同一端口上托管两种服务。如果您的Angular应用程序只是静态的,您可以让Plumber自己提供HTML / JS资产,这样您的整个应用程序都可以在一个端口上运行。这是一个例子:https://github.com/trestletech/plumber/tree/master/inst/examples/06-sessions。这是另一个使用由Plumber托管的Vue.js应用程序:https://github.com/trestletech/movies-plumber

如果无法做到这一点,您还可以考虑将您托管角度应用的“主”网络服务器的流量代理到管道工 - 再次在相同的端口/域上。