javascript - 如何向 Microsoft Vision API 发送 ajax 请求?

标签 javascript ajax azure-cognitive-services

我正在关注文档 here底部的示例代码如下所示

<!DOCTYPE html>
<html>
<head>
    <title>JSSample</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js">    </script>
</head>
<body>

<script type="text/javascript">
    $(function() {
    var params = {
        // Request parameters
        "returnFaceId": "true",
        "returnFaceLandmarks": "false",
        "returnFaceAttributes": "{age}",
    };

    $.ajax({
        url: "https://api.projectoxford.ai/face/v1.0/detect?" + $.param(params),
        beforeSend: function(xhrObj){
            // Request headers
            xhrObj.setRequestHeader("Content-Type","application/json");
            xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","REDACTED");
        },
        type: "POST",
        // Request body
        data: "http://newsrescue.com/wp-content/uploads/2015/04/happy-person.jpg",
    })
    .done(function(data) {
        alert("success");
    })
    .fail(function() {
        alert("error");
    });
});
</script>
</body>
</html>

但我不断收到错误代码 404 找不到资源。谁能告诉我我做错了什么?

最佳答案

快速检查 Postman表明你得到了一个错误的参数(不是 404)。

一些事情:

  1. returnFaceAttributes 应该是 "age"(不是 "{age}")
  2. data 需要一个参数名

试试这个(检查 data 更新):

<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
    <title>JSSample</title>

</head>
<body>

<script type="text/javascript">
    $(function() {
    var params = {
        // Request parameters
        "returnFaceId": "true",
        "returnFaceLandmarks": "false",
        "returnFaceAttributes": "age",
    };

    $.ajax({
        url: "https://api.projectoxford.ai/face/v1.0/detect?" + $.param(params),
        beforeSend: function(xhrObj){
            // Request headers
            xhrObj.setRequestHeader("Content-Type","application/json");
            xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","e2c75ad5d44846d590ac7c2dcc2f210e");
        },
        type: "POST",
        // Request body
        data: '{ "url": "http://newsrescue.com/wp-content/uploads/2015/04/happy-person.jpg"}'
    })
    .done(function(data) {
        console.log(data);
        alert("success");
    })
    .fail(function() {
        alert("error");
    });
});
</script>
</body>
</html>

我创建了一个 jsbin以确保它有效(根据 Microsoft 的说法,她是 19.3 岁)。

最后一个重要注意事项。立即更改您的 Ocp-Apim-Subscription-Key key !

关于javascript - 如何向 Microsoft Vision API 发送 ajax 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37529482/

相关文章:

javascript - 使用 .promise() 让 Ajax 请求首先启动?

java - GWT 入门

python - Azure 认知服务 - 使用 python 和 websockets 自定义语音

azure - 使用 azure.cognitiveservices.speech WebSocket 升级失败,出现错误请求 (400)

nlp - LUIS - 我们可以使用短语列表作为实体类型列表中的新值吗

javascript - 检查数组是否有空元素

javascript - 等待来自链式 sequelize 函数的异步响应

javascript - 将 javascript 变量传递给 gsp g :link tag

javascript - 对于 css 封装,shadow dom 是否是 iframe 的可行替代方案?

javascript - PHP判断客户端请求的dataType或responseType