Başarıyla uçmayı başarıyla gerçekleştiren bir etki alanları arası AJAX GET var, ancak çerezler GET isteğine bağlı değil. Kullanıcı bir oturum açma düğmesine bastığında, kullanıcı girişi yapmak için bir POST yapılır ve bu da doğru bir şekilde çapraz etki alanıyla çalışır. JavaScript'tir:CORS talebi - neden çerezler gönderilmiyor?
function signInSuccess() {
$.ajax(current_user_url, {
type: "GET",
contentType: "application/json; charset=utf-8",
success: function(data, status, xhr) {
displayWelcomeMessage();
},
beforeSend: function(xhr) {
xhr.withCredentials = true;
}
});
}
: JavaScript GET isteği geçerli kullanıcının bilgi almak için yapılır
oturum açma, başarılı
Set-Cookie:user_token=snippysnipsnip; path=/; expires=Wed, 14-Jan-2032 16:16:49 GMT
ise:
$.ajax(signin_url, {
type: "POST",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(credentials),
success: function(data, status, xhr) {
signInSuccess();
},
error: function(xhr, status, error) {
signInFailure();
},
beforeSend: function(xhr) {
xhr.withCredentials = true
}
});
yanıt başlıkları
bir çerez dahilChrome'un OPTIONS isteğinden dönen CORS ile ilgili üstbilgiler şunlardır:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:X-Requested-With, X-Prototype-Version, Content-Type, Origin, Allow
Access-Control-Allow-Methods:POST, GET, OPTIONS
Access-Control-Allow-Origin:http://192.168.0.5
Access-Control-Max-Age:1728000
Ancak, GET isteğinde hiçbir tanımlama bilgisi gönderilmez.
bu işe alma konusunda 4 saat harcanmış olmalıdır. Bu yazıyı daha önce görmüş olsaydım. Teşekkürler! – ChrisRich
PUT/OPTIONS aynı şekilde çalışmıyor gibi görünüyor. Çerezler GET/POST için neden gönderilir, ancak PUT preflight OPTIONS isteği neden olmaz? –
Çerezler localhost'ta çalışmıyor (ayarlanmadı). Yerel olarak çerez kullanmanız gerekiyorsa bunun yerine ip tabanlı alanı kullanın (ör. "127.0.0.1"). – Dziamid