首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表格识别器分析:数据加载错误- 415

表格识别器分析:数据加载错误- 415
EN

Stack Overflow用户
提问于 2020-05-10 04:29:42
回答 1查看 228关注 0票数 0

我试图使用SAPUI5 (Jquery / AJAX) post方法调用表单识别器API。我能够阅读相同的pdf使用RESTAPI客户端。当从Javascript调用API时,会出现以下错误。

问题似乎与ajax post方法中的数据有关。任何建议/帮助都是非常感谢的。

错误信息:

"innerError":{"requestId":"a12dc9f8-b22f-4602-85d8-7330b16593f7"},415不支持的媒体类型{“错误”:{“代码”:“2018”,

“消息”:“内容解析错误”}}

Javascript代码:

代码语言:javascript
复制
onChange: function(oEvent) {
    //  var that = this;
    var reader = new FileReader();
    var file = oEvent.getParameter("files")[0];
    var raw;

    reader.onload = function (e) {
        raw = e.target.result;
        //alert(raw);
        var sUrl2 = "https://formrecognizerforsap.cognitiveservices.azure.com/formrecognizer/v1.0-preview/custom/models/{mymodelid>/analyze";

        jQuery.ajax({
            type: "POST",
            url: sUrl2,
            context: this,
            crossDomain: true,
            data: raw,
            beforeSend: function (xhr) {
                xhr.setRequestHeader("content-type", "application/pdf");

                xhr.setRequestHeader("ocp-apim-subscription-key", "my-subscription id");
            },
            error: function (jqXHR, textStatus, errorThrown) {
                sap.m.MessageToast.show(errorThrown);
            },
            success: function (oData, status, jqXHR) {
                sap.m.MessageToast.show(status);
            }

        });


    };

    reader.onerror = function (e) {
        sap.m.MessageToast.show("error");
    };
    reader.readAsDataURL(file);
},
EN

回答 1

Stack Overflow用户

发布于 2020-10-15 21:29:58

您可以使用atob javascript函数解码Base64字符串(link)。

示例:

代码语言:javascript
复制
    //plain text base64 WITHOUT datacontent and other stuff
    let base64string = "JVBERi0xLjQKJ..."
    
    let byteCharacters = atob(base64string);
    
    jQuery.ajax({
            type    : "POST",
            url     : "<form recognizer url endpoint>",
            context : this, 
            crossDomain: true,
            data: byteCharacters,
            beforeSend: function(xhr) {
    
                xhr.setRequestHeader("ocp-apim-subscription-key", "<your_key>");
    
                //To avoid specify pdf or image type use octet-stream
                xhr.setRequestHeader("content-type", "application/octet-stream");            
    
            },
            error   : function(jqXHR, textStatus, errorThrown) {
                console.error(errorThrown);
                },
            success : function(oData, status, jqXHR) {
                console.info(status);
            }
    });

要从pdf中获得普通的base64字符串,您可以使用这个网站来测试:https://base64.guru/converter/encode/pdf

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61707199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档