javascript – 无法接收CORS的http状态代码413

我有这个Web应用程序,其中Web服务托管在Amazon API网关和客户端应用程序托管在cloudefront站点上.这些服务启用了CORS.对于任何错误,例如http 500,401,403,我能够使用status属性从jqxhr对象接收http状态.但似乎对于http状态413我在代码中获得状态0.

我还注意到,如果在服务器中发出请求,则可以接收http状态413.但仅对于跨域ajax,状态413作为状态0被接收.

有没有办法处理跨域ajax请求的http状态413.

简单来说,考虑以下代码块,对于http状态500,401,错误回调日志输出500或401.但是对于413,它显示0.

        $.ajax({
            url: 'URL to AWS API Gateway',
            success: function(d){
                 console.log(d);
            },
            error: function(a){
                console.log( a.status );
            }
        });

最佳答案 请参阅以下
http://jsfiddle.net/tqgv7z9c/1/(注意http不是https)

$.ajax({
    url: 'http://www.mocky.io/v2/57bb03fc100000460a585000',
    error: function(a){
        $('#code').text( a.status );
    }
});

我使用以下设置使用http://www.mocky.io/进行设置:

> 413请求实体太大
> CORS标题

> Access-Control-Allow-Origin:http://fiddle.jshell.net
>访问控制允许方法:GET

您可以看到正确返回了413代码.

如果没有看到有关您收到的响应的更多详细信息,我认为浏览器正在采取后续操作,我知道如果304 Found响应带有Location标头,这将是一个问题,这将导致新的请求发生,在浏览器继续之前,您将无法拦截.如果这就是你正在发生的事情,如果你没有能力修改API本身,你很可能无法做到这一点.

点赞