2013-06-12 27 views
65

içine tanımlama bilgisi göndermiyor AngularJS ve Java Servlet'leri ile RESTful bir Web servisi üzerinde çalışıyoruz. Kullanıcı oturum açtığında, arka uçumuz ön tarafa bir "Set-Çerez" başlığı gönderir. Açısal olarak, $cookies (ngCookie - modül) üzerinden üstbilgiye erişir ve ayarlanır. enter image description here

Kullanıcı giriş yaptığında, örneğin bazı şeyleri silebilir. Bu nedenle ön taraf, arka uca bir GET isteği gönderir. Biz farklı alanlarda çalışmak Çünkü bazı CORS Başlıkları ayarlamanız gerekir ve Açısal gerçek GET isteği önce bir OPTIONS isteğini yapar:

SEÇENEKLER isteği: OPTIONS request

GET isteği GET request

Bunu, $ http modülü ile Angular'da yapıyoruz, ancak JSESSIONID içeren çerezleri göndermeyeceğiz.

Köşeli kurabiye tanımlama bilgilerini nasıl etkinleştirebilirim? angularjs withCredentials üzerinde

.config(function ($httpProvider) { 
    $httpProvider.defaults.withCredentials = true; 
    //rest of route code 
}) 

Bilgi:

cevap

129
+6

Bu ve arka uç üstbilgisinin İzin Verme Kimliklerine ayarlanması sorunu çözdü! Teşekkürler! –

+10

Sadece buna eklemek için, '$ http.get (' bir şey ', {withCredentials: true}) gibi bir çağrı yaptığımda, tarayıcının çerezleri göndermediğini fark ettim. Ancak, yukarıdaki kodları kullanarak 'withCredentials 'varsayılanlarına hile yaptı. Neden emin değil ama umarım bu sorun karşısında birisi çalışırsa yardımcı olur –

+0

Bu hayatımı bir grup kolaylaştırdı, teşekkür ederim. – Seiyria

8
$http.get("URL", { withCredentials: true }) 
    .success(function(data, status, headers, config) {}) 
    .error(function(data, status, headers, config) {}); 

: mozilla maddeye bağlanan http://docs.angularjs.org/api/ng.$http

Aklınızda bulundurmanız gereken başka bir şey: öğesinin 3. taraf çerezlerine izin vermeniz gerekiyor. Chrome'da global olarak devre dışı bıraktıysanız, alan adının solundaki "i" Simgesini ve ardından çerezleri tıklayın, ardından "engellendi" ve hedef alanın engellemesini kaldırın.

+1

Bu yaklaşım benim için AngularJS2'de çalıştı .... fakat kaynak kodumu değiştirmeden önce oluşturduğum oturumun sonuna kadar değil! – HDave

İlgili konular