【问题标题】:onload function with token bearer javascript带有令牌持有者 javascript 的 onload 函数
【发布时间】:2020-12-17 06:20:01
【问题描述】:

我有我的功能

function setImg(imgUrl){
    img.src = imgUrl
    img.onload = function () {
    ctx.canvas.width  = this.width;
    ctx.canvas.height = this.height;
    ctx.drawImage(img, 0,0);
    updateData(lastData)
  };

需要上传图片大小并放入画布中。上传图片需要不记名令牌。

我已经尝试为函数的开头添加广告

img.src = imgUrl + '?access_token=xxxxxxxxxxxx';

但它没有用。我必须用纯 js 来做,我看到了所有其他问题,但没有一个有用。有人可以帮忙吗?


我也尝试在 setImg 里面做

    let tmp1;

var oReq = new XMLHttpRequest();
oReq.open("GET", imgUrl, true);
oReq.setRequestHeader("Authorization", "Bearer xxxxxx");
// use multiple setRequestHeader calls to set multiple values
oReq.responseType = "arraybuffer";
oReq.onload = function (oEvent) {
  var arrayBuffer = oReq.response; // Note: not oReq.responseText
  if (arrayBuffer) {
    var u8 = new Uint8Array(arrayBuffer);
    var b64encoded = btoa(String.fromCharCode.apply(null, u8));
    var mimetype="image/png"; // or whatever your image mime type is
    // document.getElementById("yourimageidhere").src="data:"+mimetype+";base64,"+b64encoded;
    tmp1 = "data:"+mimetype+";base64,"+b64encoded;
  }
};
oReq.send(null);

img.src = tmp1;
img.onload = function () {
  ctx.canvas.width  = this.width;
  ctx.canvas.height = this.height;
  ctx.drawImage(img, 0,0);
  updateData(lastData)
};

但是没有用。

【问题讨论】:

  • 上传图片需要不记名令牌。设置imgsrc 意味着您正在下载图像。你能解释一下你想在这里做什么吗?
  • 这能回答你的问题吗? stackoverflow.com/a/23610549/4699195
  • 我必须从imgUrl发出一个get请求,我需要传递承载来完成请求

标签: javascript image token onload bearer-token


【解决方案1】:
const src = imgUrl;
const options = {
  headers: {
    'Authorization': 'Bearer xxxxxxx'
  }
};

fetch(src, options)
.then(res => res.blob())
.then(blob => {
  // console.log("AAA", URL.createObjectURL(blob) );
  img.src = URL.createObjectURL(blob);
});

【讨论】:

    猜你喜欢
    • 2012-11-27
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 2018-08-22
    • 2020-05-26
    • 2015-06-23
    • 2016-05-17
    • 2015-06-04
    相关资源
    最近更新 更多