recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - L'interface de récupération de Qiniu capture des ressources tierces (images réseau) et le message d'erreur renvoyé par la requête JS Ajax est toujours "Non autorisé"

L'autorisation de la demande de récupération a échoué. Je ne sais pas s'il s'agit d'une erreur d'épissage de chemin ou d'une erreur dans la requête ajax écrite.

//Gérer les informations d'identification
fonction 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);
    }
});

}

曾经蜡笔没有小新曾经蜡笔没有小新2798 Il y a quelques jours1627

répondre à tous(1)je répondrai

  • PHP中文网

    PHP中文网2017-05-16 13:30:04

    fonction safe64(base64) {

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

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

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

    }
    Problème d'encodage résolu.

    répondre
    0
  • Annulerrépondre