【问题标题】:How to get textOperations and Get Result?如何获取 textOperations 并获取结果?
【发布时间】:2018-01-22 15:02:21
【问题描述】:

我需要执行 "Post" 以获取 textOperations 并使用此接收到的值执行 "Get" 并返回结果。

我正在做 "Post" 但是我在 console.log() 中没有得到任何东西,我如何接收并使用这个 "id"在“Get”中返回结果?

API 名称是:

微软人脸 API

我的代码:

function HandWriteenTextAPI(){

  // CHAVE DE INSCRIÇÃO DA API.
  var API_KEY = "";

  // Deve-se utilizar a mesma região em que a chave de escrição da API está
  // NOTA: As chaves de inscrições de testes são geradas na região "Westcentralus".
  var uriBase = "https://westcentralus.api.cognitive.microsoft.com/vision/v1.0/recognizeText?";

  // Solicitar Parâmetros de Retorno do JSON.
  var params = {
    "handwriting": "true"
  };

  // MOSTRA A IMAGEM RECEBIDA DA URL
  var sourceImageUrl = document.getElementById("inputURLImage").value;
  document.querySelector("#imageReceived").src = sourceImageUrl;

  // Executa a chamada da API RESTFULL via AJAX.
  $.ajax({

    // Utiliza a uriBase para retornar os valores dos Parâmetros
    url: uriBase + $.param(params),

    // Solicita os Headers
    beforeSend: function(xhrObj){
      xhrObj.setRequestHeader("Content-Type","application/json");
      xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key", API_KEY);
    },

    // Tipo do AJAX
    type: "POST",

    // Solicita o Body
    data: '{"url": ' + '"' + sourceImageUrl + '"}',
  })

  .done(function(data) {
    // Recebe o JSON e transforma em um Objeto
    var objJSON = JSON.parse(JSON.stringify(data, null, 2));
    console.log(objJSON);



  })
  .fail(function(jqXHR, textStatus, errorThrown) {
    // Mostra as mensagens de Erro.
    var errorString = (errorThrown === "") ? "Error. " : errorThrown + " (" + jqXHR.status + "): ";
    errorString += (jqXHR.responseText === "") ? "" : jQuery.parseJSON(jqXHR.responseText).message;
    alert(errorString);
  });

};

【问题讨论】:

  • 在对数据进行字符串化和解析之前尝试 console.log(data) 以检查您获得的数据,然后可能通过 console.log(typeof data) 检查其类型。让我知道日志输出。

标签: javascript json face-recognition microsoft-cognitive


【解决方案1】:

成功后,POST 请求会以 HTTP 202 进行响应,通常不包含响应正文。该 URL 包含在 Operation-Location HTTP 标头中。以下是提取它的方法:

  .done(function(data, textStatus, jqXHR) {
    // Recebe o JSON e transforma em um Objeto
    if (jqXHR.status == 202) {
      console.log(jqXHR.getResponseHeader('Operation-Location'))
    }
  })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-08
    • 2012-09-10
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    相关资源
    最近更新 更多