【发布时间】: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