七牛fetch接口抓取第三方资源(网络图片),Js写ajax请求返回error错误信息总是“Unauthorized”

发布于 2022-09-04 22:14:23 字数 1354 浏览 15 评论 0

fetch请求授权失败了不知道是path拼接错误还是写的ajax请求有错误。

//管理凭证
function genManageToken(accessKey, secretKey, pathAndQuery, body) {

var str = pathAndQuery + "\n" + body;
var hash = CryptoJS.HmacSHA1(str, secretKey);
var encodedSign = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(hash));
return accessKey + ":" + encodedSign;

}

var fetchImg = function(picUrl) {

// 通过fetch进行远程图片抓取
var accessKey = "AK";
var secretKey = "SK";
//网络图片picurl上传到七牛
var srcUrl = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(picUrl));
var bucket = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse("bucket"));
var path = "/fetch/" + srcUrl + "/to/" + bucket;
var fetchUrl = "http://iovip.qbox.me/" + path;
mui.ajax(fetchUrl, {
    dataType: 'json', //服务器返回json格式数据
    type: 'post', //HTTP请求类型
    timeout: 10000, //超时时间设置为10秒;
    headers: {
        'Authorization': "QBox " + genManageToken(accessKey, secretKey, path, ""),
        'Content-Type': 'application/json',
    },
    success: function(data) {
        //服务器返回响应,根据响应结果,分析是否登录成功;
        data = JSON.stringify(data);
        data = eval("(" + data + ")");
        //输出响应成功key值
        console.log(data['key']);
    },
    error: function(xhr, type, errorThrown) {
        //异常处理;
        console.log(errorThrown);
    }
});

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南…巷孤猫 2022-09-11 22:14:23

function safe64(base64) {

base64 = base64.replace(/\+/g, "-");
base64 = base64.replace(/\//g, "_");
return base64;

}
function genManageToken(accessKey, secretKey, pathAndQuery, body) {

var str = pathAndQuery + "\n" + body;
var hash = CryptoJS.HmacSHA1(str, secretKey);    
var encodedSign = safe64(hash.toString(CryptoJS.enc.Base64));

}
编码问题已解决。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文