【问题标题】:Problems with POST to Google Cloud Vision via Javascript通过 Javascript POST 到 Google Cloud Vision 的问题
【发布时间】:2017-12-05 08:42:01
【问题描述】:

我正在尝试通过带有 jquery 的 javascript 对 Google Cloud Vision API 进行非常简单的 POST。在 Chrome 中进行测试时,我通过控制台收到 400 错误,并且没有进一步的信息来帮助调试。我希望有人以前使用过 Cloud Vision,或者至少可以看到我在这里做的事情明显错误,比如格式化请求正文(数据)。整个测试html/javascript如下:

<html><head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/json2/20160511/json2.js"></script>
<script type="text/javascript">

var p = {"requests":[{  "image":{    "source":{"imageUri":"https://cloud.google.com/vision/docs/images/car.png"}}  ,  "features": [{"type":"LABEL_DETECTION","maxResults":3}]    } ]};

$.ajax({
type: "POST",
url: "https://vision.googleapis.com/v1/images:annotate?key=APIKEY",
data: JSON.stringify(p),

headers: {
  "Content-Type": "application/json",
},

dataType: "json",   
success: function(data, textStatus, jqXHR) {
  alert(data);
}

});

</script>
</head></html>

我一直在使用以下文档寻求帮助: https://cloud.google.com/vision/docs/detecting-labels,无济于事。

仅供参考,我也试过速记,但没有用,同样的错误:

var p = {"requests":[{  "image":{    "source":{"imageUri":"https://cloud.google.com/vision/docs/images/car.png"}}  ,  "features": [{"type":"LABEL_DETECTION","maxResults":3}]    } ]};
$.post( "https://vision.googleapis.com/v1/images:annotate?key=APIKEY", JSON.stringify(p) , function(data) { alert(data); }       );

【问题讨论】:

  • 我很确定 API 正在响应并且我的 API 密钥正在工作。我已经测试过删除和重置密钥等。所以我认为这不是身份验证问题。数据中的有效负载似乎是一个问题 - 但从文档看来,我正在正确格式化...如果您将数据更改为 {"request":[]} 并且不将 API 字符串化以某种空集响应。这是除了 400 错误之外我收到的唯一变化。

标签: javascript json post google-cloud-vision


【解决方案1】:

我能够毫无问题地完成以下工作,所以我不再关心上面的 jquery 解决方案了:)

<script type="text/javascript">
var b=JSON.stringify({"requests":[{  "image":{    "source":{"imageUri":"https://cloud.google.com/vision/docs/images/car.png"}}  ,  "features": [{"type":"LABEL_DETECTION","maxResults":5}]    } ]});
var e=new XMLHttpRequest;

e.onload=function(){console.log(e.responseText)};
e.open("POST","https://vision.googleapis.com/v1/images:annotate?key=APIKEY",!0);
e.send(b)
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    相关资源
    最近更新 更多