在处理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")
,我还需要别的东西吗?
答案 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如果无法做到这一点,您还可以考虑将您托管角度应用的“主”网络服务器的流量代理到管道工 - 再次在相同的端口/域上。