jQuery.get()访问控制只允许某些资源出现原始错误

jQuery.get() Access-Control-Allow-Origin Error Only On Some Resources

本文关键字:资源 原始 错误 许某些 get 访问控制 jQuery      更新时间:2023-10-06

有点奇怪!我正试图将SVG代码从PHP脚本导入到我们的网站,该脚本由第三方托管,该脚本从我们的内部服务器中提取XML。因此,基本上所有的调用都指向同一个文件,但使用不同的查询参数来加载SVG。

所以,几乎是随机的,有时我会得到这个。。。

No 'Access-Control-Allow-Origin' header is present on the requested resource.

在调用的一个子集上(有时没有,有时几个,但很少全部)。甚至在页面刷新之间。所以我只是想知道为什么它不只是一揽子工作或不工作。

以下是PHP文件中的代码:

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";   
}

以及JS:

$('.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");
    }
    });
});

所有排序-原来是由于mod_evasive有点过于苛刻。现在优化了配置文件中的变量,运行良好。

这也解决了我们在OpenCart和AJAX结账时遇到的一个问题,如果有人偶然发现的话。