2012-12-19 11 views
8

kullanarak Firefox'ta sadece ayarlıyor ile çerez. Ben jquery ajax yoluyla istekte bulunarak bunu elde etmeye çalışıyorum.CORS Ben dosyalanmış <code>domain</code> çapraz site isteği kullanılarak eklendiğinde çerez bırakır mümkün değilim Alan kısmını jQuery AJAX

o firefox dışındaki tarayıcılarda çalışan almak mümkün mü?

Bazı istek Başlıkları:

Accept:application/json, text/javascript, */*; q=0.01 
Content-Length:55 
Content-Type:application/x-www-form-urlencoded; charset=UTF-8 
Host:localhost:53862 
Origin:http://localhost:54265 
Referer:http://localhost:54265/ 

Yanıt Başlıkları:

Access-Control-Allow-Credentials:true 
Access-Control-Allow-Headers:x-requested-with, origin, content-type, accept, Proxy-Connection 
Access-Control-Allow-Methods:GET,POST,PUT,OPTIONS, DELETE 
Access-Control-Allow-Origin:http://localhost:54265 
Set-Cookie:Auth=l_hash=123456&user=xyzl&remember_me=false; expires=Fri, 18 Jan 2013 13:42:10 GMT; domain=localhost; path=/ 

Kodu:

$.ajax({ 
    type: "PUT", 
    url: apiHost + "api/account/login/", 
    data: $("#loginBarForm").serialize(), 
    dataType: "json", 
    contentType: "application/x-www-form-urlencoded; charset=UTF-8", 
    crossDomain: true, 

    xhrFields: { 
     withCredentials: true 
    }, 
}); 

Ev İtfaiyede erything iyidir. Chrome çerez ayarlamıyor. Sadece alan adı kaldırılırsa, her tarayıcıda çalışır. Bir sonraki istekte (çerez ayarlandıktan sonra) çerezin üstbilgide göründüğünü görebiliyorum. (Tepki alan alanını vardı) tepki ayar çerezi sonra firefox isteğinden Örnek:

Cookie: Auth=l_hash=123456&user=xyz&remember_me=false 
+0

'localhost'' Set-Cookie 'başlığı için geçerli bir alan olduğundan emin misiniz? [RFC] 'ye göre (http://www.ietf.org/rfc/rfc2109.txt), en az bir "gömülü" nokta içermelidir. FireFox bunu daha az kısıtlayıcı bir şekilde uygulayabilir. IP adresinizi deneyin. – Stan

+0

@Stan Çok teşekkür ederim, lütfen cevap olarak gönderin. – Mariusz

cevap

5

Sorun Set-Cookie başlığındaki için geçerli bir alan olmadığı, localhost ile olabilir düşünüyorum. RFC'a göre, en az bir "gömülü" nokta içermelidir. FireFox bunu daha az kısıtlayıcı bir şekilde uygulayabilir. IP adresinizi deneyin.

+0

Sadece 'localhost' ile '127.0.0.1 'yerine benim için çalıştım. Teşekkürler! – Matt

3

Aynı sorun vardı ve tarayıcı ayarlarının üçüncü taraf çerezlerini engellediği ortaya çıktı (Chrome> Ayarlar> Gelişmiş Ayarlar> Gizlilik> İçerik Ayarları> Üçüncü taraf çerezlerini ve site verilerini engelle). Çerezlere izin vermek sorunu çözdü!

+0

Evet, bu saatlerce sürtüşmeden sonra problemimi çözdü! Sadece benim durumumda, Firefox'u üçüncü taraf çerezlerini engelliyordum ve Chrome onlara izin veriyordu. – alexw

İlgili konular