我有两个域名:
http://localhost:9000
/我用Yeoman创建的AngularJS App http://localhost
/我使用CodeIgniter创建的PHP应用我的Angular应用程序在PHP应用程序中进行$http.post
验证并保存会话以使用户在记录时出现,但是,当我尝试恢复存储在CI会话中的用户信息时,只是不要存在。
如何让AngularJS应用程序访问会话并且不会丢失?
答案 0 :(得分:4)
假设您的PHP应用程序配置为支持CORS,则需要按如下方式配置Angular $httpProvider
...
$httpProvider.defaults.useXDomain = true;
然后为了允许设置响应cookie,withCredentials
必须为真......
$http.post(url, {withCredentials: true, ...})
最后,您可能需要调整Cookie域和路径,以便在TLD的子域中进行访问。例如,如果您的CORS服务器位于api.foo.com
,则默认情况下它可能会在api.foo.com
上设置Cookie,并且awesome-app.foo.com
上的客户端应用将被拒绝访问这些Cookie。当然,出于安全原因,您不希望客户端应用程序读取API的会话cookie。
希望这会有所帮助。祝你好运。