Javascript 当尝试从url转换为base64时-JS中的获取CORS问题
当我试图将图像url转换为base64时,我遇到了CORS问题。 不知道要解决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
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以外的其他类型。然后您可以让您的代码读取其中的内容并加以利用……但这是一种完全重新架构的方法。看看,如果你想调查的话