Cors Hatası - Cors'un Standart Protokolü
Merhaba, Rest API ile server-side'dan client-side'a bilgi almam gerekiyor. Ancak şu cors durumuna takıldım. Bir zamanlar halletmiştim bu olayı ama notlarımı bulamıyorum. Şimdi de öyle bir anda tıkandım ve standart protokolü uygulamama rağmen Cors hatası vermeye devam ediyor.
Server Side greencheap.net
Client Side localhost:8000
Client'den giden istekdeki bilgiler şudur:
let http = this.$http.get(urlParam ,
{
params:parameter,
headers: {
'Content-Type':'application/x-www-form-urlencoded',
'Accept': 'application/x-www-form-urlencoded',
}
}
).catch((err)=>{
this.$notify(err.status+' '+this.$trans(err.bodyText) , 'danger')
})
Server'dan yanıt
$this->response = new Response();
$this->response->headers->set('Content-Length' , 1728000);
$this->response->headers->set('Content-Type' , 'application/x-www-form-urlencoded');
$this->response->headers->set('Access-Control-Allow-Origin' , '*');
$this->response->headers->set('Access-Control-Allow-Methods' , 'GET');
$this->response->headers->set('Access-Control-Allow-Headers' , 'Content-Type, Accept');
$this->response->headers->set('Access-Control-Max-Age' , 1728000);
Bu şekilde istek attıyorum ama Cors veriyor yinede
komik bir şekilde çözdüm Tayfun hocam ama anlayamadığım bir olay var. Ben client tarafında header'a en ufak bir şey eklersem cors'a düşüyor server-side tarafında izin vermeme rağmen. Çözümde ajaxdaki headerları silerek oldu. Gerçekten inanılmaz garip bir olay. Bu durumda ajax'a XmlHttpRequest değerini ekleyemeyeceğim. Bu da güvenlik açığı olacak. Malum postman gibi araçlar kafasına göre girip çıkabiliyor. illet de ne illet ya. Adımı sadece sinir ediyor. Teşekkür ederim yinede