我在尝试使用区别域中的Cookie时遇到了一些问题。在我的场景中,我有两个应用程序( app1 和 app2 )。基本上, app1 正在对 app2 执行 ajax请求,以便创建一个cookie(即dummyCookie)。 app2 是在Play framework 2.5 for Java上运行的应用程序。我正在创建这样的cookie:
response().setCookie(Http.Cookie.builder("dummyCookie", "9e0a6b4c-58ed-b700-0000-015ec494956").build());
我正在使用剧本 CORSFilter :
package myCustomFilters.filters;
import play.filters.cors.CORSFilter;
import play.http.DefaultHttpFilters;
import javax.inject.Inject;
public class Filters extends DefaultHttpFilters {
@Inject
public Filters(CORSFilter corsFilter) {
super(corsFilter);
}
}
在我的 application.conf 中,我有这样的配置:
play.http.filters = "myCustomFilters.Filters"
play.filters {
cors {
pathPrefixes = ["/"]
allowedOrigins = null
allowedHttpMethods = ["POST, GET, PUT, DELETE, OPTIONS"]
}
}
在 Chrome控制台中,在网络标签中,我可以在响应标题中看到Cookie。
如果我查看应用标签, Cookie会话,我无法在那里看到Cookie:
我做了一些调查,可能问题与场景" CORS + AJAX "有关,因为我有一个应用程序调用(通过ajax请求)另一个生成一个cookie。
伙计们,有人已经遇到过这种情况吗?
答案 0 :(得分:0)
我有类似的问题。我不得不以不同的方式调整配置,以便在Chrome中实现这一功能。客户端请求也需要一些特定的更改(我使用JQuery,这种方法是必要的:Sending credentials with cross-domain posts?)。
然而,最后,我发现Safari很可能永远不会为我工作,因为Apple现在有specific rules来处理何时可以跨域发送cookie。根据您要实现的目标,这可能会让您考虑采用完全不同的方法。