我有一个App Engine服务器,它托管一个AngularJS应用程序,该应用程序向另一个App Engine服务器上的一些Cloud Endpoints API发出CORS请求。根据$http service documentation,我设置了一个默认的头,使它能够在跨域请求中发送凭据:
$httpProvider.defaults.withCredentials = true;前端服务器有一个支持SSL的相关自定义域,并通过HTTPS发出请求(因此两端基本上都是HTTPS)。我的目标是向后端发送一个身份验证cookie,以便管理资源访问授权,但由于某些原因,此cookie从未发送。当两个服务器在本地运行(前端:http://localhost:8081,后端:http://localhost:8080)时,我确实在请求中看到了cookie,但在部署时看不到。
我错过了什么?
发布于 2016-03-14 08:25:17
尝试将此标头添加到您的HTTP调用{'Content-Type': 'application/x-www-form-urlencoded'}中
发布于 2016-03-16 08:24:04
如果我理解正确的话,您想通过CORS将授权cookie发送到不同的(子)域?
要做到这一点,您需要在初始页面加载时允许CORS请求,使用您已经详细说明的'withCredentials‘,以及目标跨域调用的cookie。如果它是跨域的,你将不得不用js代码编写cookie,如果它是兄弟子域,请确保cookie域以点.domain.com开头,然后cookie将在该域的所有子域之间共享。
Localhost可以对这种测试造成严重破坏,因为域关系不同(即不是兄弟子域)-您可以尝试使用本地代理来设置将子域映射到环回地址的场景。
https://stackoverflow.com/questions/35970779
复制相似问题