【发布时间】:2017-03-10 13:49:12
【问题描述】:
下面显示的是我的 WebAPI 方法,它返回有关几本书的信息列表。
[System.Web.Http.Authorize]
public async Task<IHttpActionResult> Get(Guid id)
{
try
{
var result = await _assetAssetRepository.View(id);
if (result == null)
{
return NotFound();
}
return Content(HttpStatusCode.Found, result);
}
catch (Exception ex)
{
return Content(HttpStatusCode.InternalServerError,
"Exception Occurred" + ex.Message + " " + ex.StackTrace);
}
}
使用此数据的 Angular js 代码
var getAssetDetails = function (assetId) {
var deferred = $q.defer();
$http.get("/api/Asset/" + assetId, { headers: { 'Authorization': 'Bearer ' + $cookies.get('accessToken') } })
.then(function (response) {
deferred.resolve(response);
}).catch(function (response) {
alert("Oops something wrong: " + response.data);
deferred.reject(response);
}).finally(function () {
});
return deferred.promise;
};
我正在苦苦挣扎的一点是,如果您在 webapi 中替换这行代码
“return Content(HttpStatusCode.OK,result)”和“return Ok(result)”我可以毫无问题地在 UI 中看到数据。但是,当我使用
“return Content(HttpStatusCode.OK,result)”时,某些角度代码无法读取此内容并抛出异常并显示警告消息“糟糕,错误 [object Object]”,所以看起来像它获取数据但由于某种原因它仍然抛出异常。有人要帮忙吗?
【问题讨论】:
-
在您的
catch回调中,您会收到一个异常作为参数,而不是http 响应。请分析此异常,以便我们为您提供更好的帮助。 -
试试
response.responseText或response.responseJSON
标签: javascript c# angularjs http asp.net-web-api