通过 Javascript POST 到 Google Cloud Vision 的问题

Problems with POST to Google Cloud Vision via Javascript

我正在尝试通过 javascript 和 jquery 制作一个非常简单的 POST 到 Google Cloud Vision API。在 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,无果。

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

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); }       );

我能够毫无问题地完成以下工作,所以我不再关心上面的 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>