如果数据是html,如何使用Angular http返回错误
How to return an error with Angular http if the data is html?
我正在使用Angular的http函数来访问我的远程API服务。
目前,我的 API 服务处于离线状态,如果用户尝试访问它,它仍然会抛出 200 状态,该状态在 Angular 中为"正常"。因此,始终调用我的成功回调而不是错误回调。奇怪的是,如果我使用 REST 客户端,例如 POSTman,它的状态为 404?
这是我调用我的 API 的函数(使用 jQuerys $.param()
函数进行 URL 友好的帖子参数(:
$http({
method: 'POST',
url: "http://mydomain/api/login",
data: $.param({
username: "test",
password: "test"
}),
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).then(successCallback(response), errorCallback(response));
以下是它在记录时给出的响应:
{data: "
↵<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN…r at [my ip address] Port 80</address>↵</body></html>↵", status: 200, config: Object, statusText: "OK"}
API 工作时的响应通常类似于:
{
data: {
id: 123
},
status: 200,
config: object,
statusText: 'ok'
}
当然,我可以在这里做一些狡猾的事情,例如编写一个 http 拦截器来检查data
是否属于 object
类型,但这并不是我在这里寻找的真正答案,因为我的一些 API 调用只返回一个布尔值。
我还尝试将"内容类型"更改为"应用程序/json",但没有运气。
如果我的 API 关闭,我需要使用我的错误回调。有没有一个优雅的解决方案?
这一切听起来有点笨拙,我能想到的最合适的方法是从 API 端点发送 404/500,直到它上线。
否则,请尝试设置Accept
标头:
{
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json'
}
相关文章:
- Angular http.get没有'我不喜欢在开头和结尾加方括号的文本文件
- 使用angular$http和django-urlpatters来获得json文件
- 从angular$http获取promise数据
- Angular$http然后解析_.each中的多个调用
- Angular $http 服务不加载 json 文件
- 如何使用Angular$http.jsonp从S3加载JSON文件
- Angular$http.jsonp-服务器don'不接受JSON_CALLBACK
- Angular-$http范围问题
- Angular$http.post未到达服务器
- Angular$http返回数据,但不返回'不适用于范围
- Angular $http not invoking
- Angular http在Phone gap中返回错误,但在浏览器中成功
- 为什么可以't我取消了这个Angular HTTP请求
- Angular$http$资源等价于PDF GET请求
- 在服务中使用Angular$http在ng点击时触发
- 如何使用$q's构造函数语法与Angular$http's配置超时
- Angular http Get Always 返回 ng-click 的状态 0
- 循环遍历 Angular HTTP 请求中的对象,等到响应后再运行下一个循环
- Angular http 返回 $$state 对象
- PHP 和 Angular $http ajax 的问题