AngularJS在Loopback API中获取413(请求实体太大)的状态码0

时间:2015-03-28 14:22:32

标签: angularjs loopbackjs http-status-code-413

1。一些信息

我有一个AngularJS 1.3.15客户端应用程序向我的loopback api发出请求。

在应用程序中,我拦截请求结果(使用$ httpProvider.interceptors)并解释状态代码以在用户执行某些操作时显示有意义的消息 - 例如,我拦截401响应,告知用户他没有授权,200当他成功保存某些东西时等等。

2。问题

例如,如果用户尝试上传的图片太大,请求有效负载将超出我的远程处理限制,我可以拦截requestError但状态代码始终显示为0.查看浏览器&# 39; s控制台我看到了:

PUT http://localhost:3000/api/Modules?id=9 413 (Request Entity Too Large)
XMLHttpRequest cannot load http://localhost:3000/api/Modules?id=9. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. The response had HTTP status code 413.

问题在于,如果服务器处于脱机状态,我在拦截requestError时也会得到状态码0,因此我无法区分发送过多数据的错误之间连接服务器的错误。 / p>

快速路由器中间件是否存在问题?我似乎找不到任何有同样问题的人......

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,但问题并非由AngularJS产生。 问题提示是:

 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.

由于未针对抛出413错误的组件配置CORS,因此AngularJS无法获取正确的状态代码。在nodejs之前我必须在我的后端启用cors - >表达 - >身体探测器开始了,问题就消失了。