Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当尝试从url转换为base64时-JS中的获取CORS问题_Javascript_Jquery_Cors_Cross Domain_Cross Platform - Fatal编程技术网

Javascript 当尝试从url转换为base64时-JS中的获取CORS问题

Javascript 当尝试从url转换为base64时-JS中的获取CORS问题,javascript,jquery,cors,cross-domain,cross-platform,Javascript,Jquery,Cors,Cross Domain,Cross Platform,当我试图将图像url转换为base64时,我遇到了CORS问题。 不知道要解决CORS问题到底需要做什么 我的代码是这样的 function toDataURL(url, callback) { var xhr = new XMLHttpRequest(); xhr.onload = function() { var reader = new FileReader(); reader.onloadend = function() { callback(read

当我试图将图像url转换为base64时,我遇到了CORS问题。 不知道要解决CORS问题到底需要做什么

我的代码是这样的

function toDataURL(url, callback) {
  var xhr = new XMLHttpRequest();
  xhr.onload = function() {
    var reader = new FileReader();
    reader.onloadend = function() {
      callback(reader.result);
    }
    reader.readAsDataURL(xhr.response);
  };
  xhr.open('GET', url);
  xhr.responseType = 'blob';
  xhr.send();
}

toDataURL('https://www.dropbox.com/******/gradient-test.jpg?dl=1', function(dataUrl) {
  console.log('RESULT:', dataUrl)
})
我得到这个错误

在'https://www.dropbox.com/***/gradient test.jpg?dl=1'从原点'https://stackoverflow.com'已被CORS策略阻止:请求的资源上不存在'Access Control Allow Origin'标头**

我无法安慰,因为CORS问题


有人能帮我摆脱JSFIDLE或实例吗?您面临的CORS问题是因为您试图从不同的域访问
www.dropbox.com
域。简而言之,你不能从你自己的领域解决这个问题——需要
www.dropbox.com
领域的合作才能解决这个问题。在本例中,您是客户机,dropbox是服务器,因此作为客户机,您不能告诉服务器要使用什么安全设置。服务器可以选择加入,也可以配置他们的站点以允许您的来源,但dropbox不可能做到这一点。您需要重新构建您的方法。(当我说你需要重新设计你的方法时,还要看看你是否不相信我。)

查看更多背景信息:

出于安全原因,浏览器限制跨源HTTP请求 从脚本启动。例如,XMLHttpRequest和FetchAPI 遵循同一原产地政策。这意味着使用 这些API只能从同一来源请求资源 应用程序已从加载,除非来自其他来源的响应 包括右CORS标题

您可以尝试使用JavaScript向DOM中注入脚本标记,将脚本标记的类型设置为JavaScript以外的其他类型。然后您可以让您的代码读取其中的内容并加以利用……但这是一种完全重新架构的方法。看看,如果你想调查的话