Closed eravse closed 8 years ago
Merhabalar. Datayı client tarafından xhr ile almaya çalıştığınız için bu sorunla karşılaşıyorsunuz.
Access-Control-Allow-Origin
header'ının request'te değil, response'da, yani server'dan gelen header'ların içinde olması lazım ve çoğunlukla güvenlik sebebiyle konulmaz. Yapabileceğiniz şey şu:
AngularJS ile direkt api'a request atmak yerine api operasyonlarını kendi server'ınızdan yapıp AngularJS ile yazılmış client'ınızın kendi server'ınızı kullanmasıyla bu sorunu çözebilirsiniz. Mesela:
Client ---(GET /pages)--> Server ---(GET https://api.hurriyet.com.tr/v1/pages )--> HurriyetAPI
Not: projede yetkili değilim ve CORS problemi burada da ayrıca açıklanıyor: http://stackoverflow.com/a/23824093/3138171
Tabiki bu seçenek düşünüldü ama sistemi de test etmek amacı ile direk request atmak istedim. ayrıca Jsonp callback ile de deniyorum http 500 alıyorum.
ayrı bir server yazıp direk oradan okumak daha mantıklı olacak sizin dediğiniz gibi.
Header üzerinde cross origin parametreleri belirtilmesine rağmen AngularJs üzerinde hata alınmaktadır headers: {
Browser Console Hata Satırı :
Default.aspx?SPHostUrl=https%3A%2F%2Fabcsharepoint.com&SPLanguage=en-US&SPClientTag=0&SPPr…:1 XMLHttpRequest cannot load https://api.hurriyet.com.tr/v1/pages. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://abc.sharepoint.com' is therefore not allowed access. The response had HTTP status code 401.