我试图将自定义错误消息返回给用户,以让他们知道发生错误时出了什么问题,但是我已经尝试了所有方法来显示该消息,并且似乎什么也没有捕捉到。这是我的角度代码:
$scope.save = function (style) { styleAPIservice.addStyle(style).success(function () { $scope.success = "Style added successfully"; }).error(function (data, status, headers, config, statusText) { $scope.error = "An error occurred while saving style: " + data + "|"+data.data+"|"+data.statusText+"|"+statusText; }); }
这是它正在调用的 styleAPIservice 函数:
styleAPI.addStyle = function (style) { return $http.post(AppRoot + "api/StyleAPI/", JSON.stringify(style), { headers: { 'Content-Type': 'application/json' } }); }
这是 API 函数:
[HttpPost] public HttpResponseMessage PostStyle(Style style) { if (string.IsNullOrEmpty(style.Pattern.PatternName) || string.IsNullOrEmpty(style.StockNumber)) return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Pattern Name and Stock Number are required."); var checkStyle = StyleRepository.LoadStyleByStockNumber(style.StockNumber); if (checkStyle != null) return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Style number already exists. Please use update."); try { // Save style } catch (Exception ex) { return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Error creating style: " + ex.Message); } HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, style); response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = style.StyleId })); return response; }
这是发生错误时返回的内容(例如Style已经存在):
An error occurred while saving style: [object Object]|undefined|undefined|undefined
我究竟做错了什么?我觉得自己到处都在搜索,并尝试了所有可能的建议,但是对于为什么我无法显示错误消息我感到茫然。
对于可能遇到此问题的其他任何人,该消息均在中data.Message。我通过调试JS找到了它。
data.Message