var getBase64ByUrl = function(src, callback, outputFormat) {
var xhr = new XMLHttpRequest()
xhr.open('GET', src, true)
xhr.responseType = 'arraybuffer'
xhr.onload = function(e) {
if (xhr.status == 200) {
var uInt8Array = new Uint8Array(xhr.response)
var i = uInt8Array.length
var binaryString = new Array(i)
while (i--) {
binaryString[i] = String.fromCharCode(uInt8Array[i])
}
var data = binaryString.join('')
var base64 = window.btoa(data)
var dataUrl = 'data:' + (outputFormat || 'image/png') + ';base64,' + base64
callback.call(this, dataUrl)
}
}
xhr.send()
}
// url为图片地址
getBase64ByUrl(url, function(url) {
console.log(url)le.log(url)
})
页面中引入外网的链接资源,会产生一个新的http请求。为了安全(URL里可能包含用户信息),浏览器一般都会给这写请求头加上表示来源的referrer 字段。
所以,此时我们需要隐藏外部链接中的referrer,在head标签中加入meta,代码如下: