使用XMLHttpRequest检查Chrome浏览器中远程服务器上存在的图像时出现问题

时间:2019-03-27 11:57:33

标签: javascript jquery cors xmlhttprequest

我在页面上使用此JQuery方法检查图像是否存在:

function imageExists(imageUrl) {
  var http = new XMLHttpRequest();
  http.open('HEAD', imageUrl, false);
  http.send();
  return http.status !== 404;
} 

如果我在浏览器中加载页面,则效果很好,但是如果我转到下一页,然后返回此页面,脚本将无法正常工作。浏览器控制台中有错误:

  

CORS策略已阻止从来源“ https://server/image.jpg”访问“ http://client”处的XMLHttpRequest:请求的资源上没有“ Access-Control-Allow-Origin”标头。

仅当我从另一个网站页面返回到Chrome浏览器中的此页面时,才会发生此错误。 Firefox和Edge浏览器没有错误

谢谢!

1 个答案:

答案 0 :(得分:0)

已通过添加具有“ no-cache”值的“ Cache-Control”请求标头来解决此问题:

function imageExists(imageUrl) {
    var http = new XMLHttpRequest();

    http.open('HEAD', imageUrl, false);
    http.setRequestHeader('Cache-Control', 'no-cache');
    http.send();

    return http.status !== 404;
}