2014-08-28 60 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。

    希望這會有所幫助。祝你好運。