JS調(diào)用阿里云OCR身份證識別

??因為工作原因,需要調(diào)取阿里云OCR身份證識別,但是阿里云給的請求示例都是后臺調(diào)用的代碼,由于特殊原因,我需要的是前臺JS調(diào)用,所以決定自己嘗試一下,最后成功調(diào)用了,廢話不多說,直接上代碼。

var json = {
    "image":imp,    
    "configure": "{\"side\":\"face\"}"
};

$.ajax({
    crossDomain: true,
    beforeSend: function(req) {
        req.setRequestHeader("Content-Type", "application/octet-stream; charset=utf-8");
        req.setRequestHeader("Authorization", "APPCODE AppCode值");
    },
    type: "POST",
    url:"http://dm-51.data.aliyun.com/rest/160601/ocr/ocr_idcard.json",
    dateType:"JSON",
    data: JSON.stringify(json),
    error: function(request) {
        alert("識別失敗,請重新上傳照片或手動輸入");
    },
    success: function(data) {
        var obj = JSON.parse(data);

        document.getElementById('Name').value = obj.name;
        document.getElementById('sex').value = obj.sex;
        document.getElementById('national').value = obj.nationality;
        document.getElementById('IdCard').value = obj.num;
        document.getElementById('address').value = obj.address;
    }
});

??通過查看阿里云的API接口說明,發(fā)現(xiàn)其調(diào)用地址:http://ai-market-ocr-person-id.icredit.link/ai-market/ocr/personid,請求方式為POST,返回類型為JSON,且請求數(shù)據(jù)為:

{
    "image":  "圖片二進制數(shù)據(jù)的base64編碼",
    "configure": "{\"side\":\"face\"}"  #正面/反面:face/back
}

??這些說明了Ajax的type,url 及 dateType,由于存在跨域問題,于是在Ajax中添加了crossDomain: true,但是發(fā)現(xiàn)還存在appcode認證問題,還好阿里云提供了一個調(diào)試工具,在調(diào)試工具中調(diào)試后發(fā)現(xiàn),appcode是寫在headers中的,且它的Content-Type為application/octet-stream; charset=utf-8,于是在Ajax中添加了:

beforeSend: function(req) {
        req.setRequestHeader("Content-Type", "application/octet-stream; charset=utf-8");
        req.setRequestHeader("Authorization", "APPCODE AppCode值");
    }

??這樣就可以正常的傳值了,最后再對傳回的值做處理就可以了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容