Biraz tuhaf biri! Üçüncü tarafın barındırdığı sitemize SVG kodunu içe aktarmaya çalışıyorum, XML sunucusundan kendi sunucumuzdan gelen bir PHP betiğinden. Bu nedenle, tüm çağrılar aynı dosyaya gider ancak SVG'yi yüklemek için farklı bir sorgu parametresi kullanır. aramaların bir alt kümesine Yani, neredeyse rastgele, bazen bu alıyorumjQuery.get() Sadece bazı kaynaklarda erişim-denetim-izin-kök hatası hatası
...
No 'Access-Control-Allow-Origin' header is present on the requested resource.
... (bazen birkaç ama bazen hiçbiri, nadiren hepsi). Sayfa yenilemeleri arasında bile. Bu yüzden sadece neden sadece iş yapmama ya da işe yaramadığını merak ediyorum.
header('Access-Control-Allow-Origin: *');
$svg = $_GET['svg'];
$file = "/path/to/images/social/$svg";
if(file_exists($file)){
$svg = file_get_contents($file);
$svg = preg_match('/(<svg.*<\/svg>)/is',$svg,$matches);
echo $matches[0];
} else {
echo "0";
}
Ve JS:
İşte PHP dosyasından kod
$('.footer-social a').each(function(){
var el = $(this);
var f = '//js.example.com/svg.php?svg='+$.trim(el.attr("class"))+'.svg';
$.get(f, function (data) {
if(data!="0"){
el.html(data);
} else {
console.log(f + " not found");
}
});
});
Chrome'da İzin Verme İzin Verme [CORS] eklentisini yüklemeyi deneyin ve – Nofi
'Header' çağrısından önce başka bir kod var mı? Başlıkların zaten headers_sent() 'kullanılarak gönderilip gönderilmediğini kontrol edebilirsiniz. – jeroen
@jeroen bu bütün dosya! –