jquery post请求无法获得404状态

时间:2015-03-20 12:20:29

标签: javascript jquery cross-domain http-post

$.ajax({
            type: 'POST',
            url: 'http://apius.faceplusplus.com/detection/detect',
            crossDomain: true,
            cache: false,
            async: true,
            headers: {
                "Authorization": "Basic " + Base64.encode('abc123' + ":" + 'xyz123')
              },
            data: dataURL,    //sending image 
            dataType: 'jsonp',
            success: function(responseData, textStatus, jqXHR) {
               alert(JSON.stringify(responseData));
            },
            error: function (responseData, textStatus, errorThrown) {
                alert(JSON.stringify(responseData));
            }
        });

dataURL是// Base064 Encode&压缩低于20 kb     var dataURL = compressImage(canvas,20); 基本上我发送图像进行检测。 错误是:无法加载资源:服务器响应状态为404(未找到) 我正处于警报状态404。 请提出任何解决方案。

1 个答案:

答案 0 :(得分:0)

我在处理ajax时遇到的一个好习惯是我总是用我的浏览器手动检查ajax url ,所以如果它有问题肯定我的ajax不会工作。

所以我为你做了同样的事情,我找到了这个数据:

{
    "error": "MISSING_ARGUMENTS: api_key", 
    "error_code": 1004
}

您是否希望在成功处理函数中获取此数据?这不错,但由于响应状态设置为错误,因此无法进入成功函数。

要检查错误,请打开开发者控制台(谷歌浏览器) - >网络 - >标题,然后查看status code的值,您将得到:

400 BAD REQUEST

所以 你得到错误400而不是404 。我希望你得到这个,因为你没有传递api_key论点。

更新
我不确定服务器在哪里查看密钥(来自header vs params)。但是使用ajax作为数据参数发送它:

data:{ dataUrl: dataUrl, data api_key:"abc123",api_secret :"xyz123"}