Javascript 无法接收CORS的http状态代码413
我有一个web应用程序,其中web服务托管在amazonapi网关上&客户端应用程序托管在cloudefront站点上。这些服务启用了CORS。对于任何错误,例如http 500、401、403,我可以使用Javascript 无法接收CORS的http状态代码413,javascript,jquery,ajax,http,backbone.js,Javascript,Jquery,Ajax,Http,Backbone.js,我有一个web应用程序,其中web服务托管在amazonapi网关上&客户端应用程序托管在cloudefront站点上。这些服务启用了CORS。对于任何错误,例如http 500、401、403,我可以使用status属性从jqxhr对象接收http状态。但是对于http状态413,我似乎在代码中得到了状态0 我还注意到,如果在服务器中使用发出请求,则可以接收http状态413。但仅对于跨域ajax,状态413作为状态0接收 是否有任何方法可以处理跨域ajax请求的http状态413 简短,考虑
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而非https)
我使用以下设置设置它:
- 413请求实体太大
- CORS头
- 访问控制允许来源:
- 访问控制允许方法:GET
如果看不到您收到的响应的更多细节,我会想象浏览器正在采取后续行动,我知道这是一个问题,如果
304 find
响应返回Location
头,这将导致出现新的请求,并且在浏览器继续之前您将无法拦截。如果您正处于这种情况,那么如果您没有修改API本身的能力,您可能就无能为力了。从API网关发送的响应在响应头上没有任何访问控制允许来源。因此,我无法访问响应主体或响应状态。所以这个问题为我解决了。
$.ajax({
url: 'http://www.mocky.io/v2/57bb03fc100000460a585000',
error: function(a){
$('#code').text( a.status );
}
});