2014-08-28 67 views
2

我有两个领域:角应用在CORS丢失会话

  • http://localhost:9000 /我AngularJS应用程序与文书上士创建使用CodeIgniter

我的角度创建的应用程序

  • http://localhost /我的PHP应用程序做$http.post在PHP应用程序中进行验证并保存会话以将用户确定为已记录日志,但是,当我尝试恢复存储在CI会话中的用户信息时,就不存在。

    我如何让AngularJS应用程序访问会话并不会丢失?

  • 回答

    2

    假设你的PHP应用程序配置为支持CORS,那么角$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。

    希望这会有所帮助。祝你好运。