在 Javascript 中处理 Pyramid HTTP 错误消息
Handle Pyramid HTTP error messages in Javascript
我确定一定有一个简单的解决方案,但我一直找不到。我在我的服务器中使用 Python Pyramid 并在 Javascript 中使用 AngularJS 处理 requests/responses。我正在使用 Pyramid HTTP 错误来处理某些情况,并且我能够使用 Angular http.error()
语句捕获它们。
但这就是我卡住的地方,我想对错误消息做些什么,但如果我记录响应,我只会看到 html 代码。
在金字塔中,这正在发生:
if exists:
# continue execution
else:
return HTTPNotFound("The object does not exist")
并在 Angular 中:
$http.get(url)
.success(function(data) {
// do something
})
.error(function(data){
// do something with the error message
});
如何从 HTTP 错误中获取特定的错误消息? (顺便说一句,我使用 JSON 作为我的渲染器)
如果您不 return 渲染器的值而是 return 响应或异常,则不会考虑您的渲染 - 所以不要期望输出 json 除非您的错误处理程序支持。
您可以改为这样做:
return HTTPUnprocessableEntity(body=json.dumps(yourobj/string))
然后您可以在错误处理程序中检索 JSON 并使用 angular.fromJson() 读取它。
可能有点晚了,但这可能会让 Angular 的其他用户感兴趣:
只需调用模态即可弹出金字塔 HTML 错误:
function(error)
{ console.log("error is: " + error);
var modalInstance = $uibModal.open(
{
template: error,
size:'lg'
});
}
(不要忘记包含 $uibModal)。
对于调试目的非常有用,但不推荐用于生产。
我确定一定有一个简单的解决方案,但我一直找不到。我在我的服务器中使用 Python Pyramid 并在 Javascript 中使用 AngularJS 处理 requests/responses。我正在使用 Pyramid HTTP 错误来处理某些情况,并且我能够使用 Angular http.error()
语句捕获它们。
但这就是我卡住的地方,我想对错误消息做些什么,但如果我记录响应,我只会看到 html 代码。
在金字塔中,这正在发生:
if exists:
# continue execution
else:
return HTTPNotFound("The object does not exist")
并在 Angular 中:
$http.get(url)
.success(function(data) {
// do something
})
.error(function(data){
// do something with the error message
});
如何从 HTTP 错误中获取特定的错误消息? (顺便说一句,我使用 JSON 作为我的渲染器)
如果您不 return 渲染器的值而是 return 响应或异常,则不会考虑您的渲染 - 所以不要期望输出 json 除非您的错误处理程序支持。
您可以改为这样做:
return HTTPUnprocessableEntity(body=json.dumps(yourobj/string))
然后您可以在错误处理程序中检索 JSON 并使用 angular.fromJson() 读取它。
可能有点晚了,但这可能会让 Angular 的其他用户感兴趣: 只需调用模态即可弹出金字塔 HTML 错误:
function(error)
{ console.log("error is: " + error);
var modalInstance = $uibModal.open(
{
template: error,
size:'lg'
});
}
(不要忘记包含 $uibModal)。 对于调试目的非常有用,但不推荐用于生产。