Javascript 如何向microsoft vision api发送ajax请求?

Javascript 如何向microsoft vision api发送ajax请求?,javascript,ajax,microsoft-cognitive,Javascript,Ajax,Microsoft Cognitive,下面是文档,底部的示例代码如下所示 <!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> <scri

下面是文档,底部的示例代码如下所示

<!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>

JSSample
$(函数(){
变量参数={
//请求参数
“returnFaceId”:“true”,
“returnFaceLandmarks”:“false”,
“returnFaceAttributes”:“{age}”,
};
$.ajax({
url:“https://api.projectoxford.ai/face/v1.0/detect?“+$.param(params),
发送前:函数(xhrObj){
//请求头
setRequestHeader(“内容类型”、“应用程序/json”);
setRequestHeader(“Ocp Apim订阅密钥”,“已编辑”);
},
类型:“POST”,
//请求主体
数据:“http://newsrescue.com/wp-content/uploads/2015/04/happy-person.jpg",
})
.完成(功能(数据){
警惕(“成功”);
})
.fail(函数(){
警报(“错误”);
});
});
但我一直得到错误代码404资源找不到。有人能告诉我我做错了什么吗?

快速检查显示您得到了一个错误的参数(不是404)

两件事:

  • returnFaceAttributes
    应该是
    “age”
    (而不是
    “{age}”
  • 数据
    需要参数名
  • 尝试此操作(检查
    数据
    更新):

    
    JSSample
    $(函数(){
    变量参数={
    //请求参数
    “returnFaceId”:“true”,
    “returnFaceLandmarks”:“false”,
    “returnFaceAttributes”:“年龄”,
    };
    $.ajax({
    url:“https://api.projectoxford.ai/face/v1.0/detect?“+$.param(params),
    发送前:函数(xhrObj){
    //请求头
    setRequestHeader(“内容类型”、“应用程序/json”);
    setRequestHeader(“Ocp Apim订阅密钥”,“e2c75ad5d44846d590ac7c2dcc2f210e”);
    },
    类型:“POST”,
    //请求主体
    数据:“{”url:”http://newsrescue.com/wp-content/uploads/2015/04/happy-person.jpg"}'
    })
    .完成(功能(数据){
    控制台日志(数据);
    警惕(“成功”);
    })
    .fail(函数(){
    警报(“错误”);
    });
    });
    
    我创建了一个网站,以确保它的工作(她19.3岁,根据微软)

    最后一个重要的注释。立即更改您的
    Ocp Apim订阅密钥
    密钥

    快速检查显示您得到了一个错误的参数(不是404)

    两件事:

  • returnFaceAttributes
    应该是
    “age”
    (而不是
    “{age}”
  • 数据
    需要参数名
  • 尝试此操作(检查
    数据
    更新):

    
    JSSample
    $(函数(){
    变量参数={
    //请求参数
    “returnFaceId”:“true”,
    “returnFaceLandmarks”:“false”,
    “returnFaceAttributes”:“年龄”,
    };
    $.ajax({
    url:“https://api.projectoxford.ai/face/v1.0/detect?“+$.param(params),
    发送前:函数(xhrObj){
    //请求头
    setRequestHeader(“内容类型”、“应用程序/json”);
    setRequestHeader(“Ocp Apim订阅密钥”,“e2c75ad5d44846d590ac7c2dcc2f210e”);
    },
    类型:“POST”,
    //请求主体
    数据:“{”url:”http://newsrescue.com/wp-content/uploads/2015/04/happy-person.jpg"}'
    })
    .完成(功能(数据){
    控制台日志(数据);
    警惕(“成功”);
    })
    .fail(函数(){
    警报(“错误”);
    });
    });
    
    我创建了一个网站,以确保它的工作(她19.3岁,根据微软)


    最后一个重要的注释。立即更改您的
    Ocp Apim订阅密钥
    密钥

    由于需要在每个请求中使用订阅密钥,所以在javascript中无法安全地实现这一点,是吗?您需要ajax调用来访问代理web服务,然后使此请求服务器端正确?@JackMarchetti更正。您可以设置一个后端(Node、Express、Django等),为您发出呼叫并转发数据。那么在无服务器架构中,它们是如何做到这一点的呢?环境变量。它们将被注入到您的环境中。检查无服务器Provider的文档,但是azure函数需要在标头或查询字符串中传递函数键。在您甚至还没有进入注入的环境变量之前,调用就会失败。由于需要在每个请求中使用订阅密钥,所以在javascript中无法安全地执行此操作,是吗?您需要ajax调用来访问代理web服务,然后使此请求服务器端正确?@JackMarchetti更正。您可以设置一个后端(Node、Express、Django等),为您发出呼叫并转发数据。那么在无服务器架构中,它们是如何做到这一点的呢?环境变量。它们将被注入到您的环境中。检查无服务器Provider的文档,但是azure函数需要在标头或查询字符串中传递函数键。在您甚至还没有进入正在注入的环境变量之前,调用就会失败。
    <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>