【发布时间】:2014-09-06 05:56:16
【问题描述】:
我有一个轻量级 Angularjs 应用程序,我正在尝试从我的 ASP.NET Web Api 控制器处理 json。
在 angularjs 工厂中:
adapter.getLegacyCouriers = function(id) {
return $http({
method: 'GET',
url: 'http://legacywebapi.azurewebsites.net/api/legacycourier'
});
}
在控制器中:
legacyService.getLegacyCouriers()
.success(function (response) {
alert("Success: " + JSON.stringify(response));
})
.error(function (response) {
alert("Error: " + JSON.stringify(response));
});
当我在 $http get with this one 中交换 URL 时,它会遇到 success 块。但是,我返回以相同方式格式化的 json 的默认 URL 会遇到 error 块。
有人可以帮助我吗?两者都返回 application/json 响应标头,并且都返回 200 OK 的状态(使用 Chrome 进行调试)。我无法弄清楚为什么我的 json 会遇到错误块。
【问题讨论】:
-
@mmeverdies 此消息对应成功请求的示例
-
@rnrneverdies 我在测试 geonames api 时没有收到“每日限制”消息。它返回了一个实际的 json 结果集,该结果集的格式与我从 Web Api 控制器返回的格式完全相同(或者我相信)。
-
看起来像参数问题。可能该方法没有默认参数。服务器端发生了一些事情。尝试在 api 中记录任何异常
-
@Fals 没有服务器端错误,您可以通过测试 URL:legacywebapi.azurewebsites.net/api/legacycourier - 它响应 200 OK 和 application/json 标头
-
我收到响应请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'run.jsbin.com' 不允许访问。来自您的legacywebapi.azurewebsites.net/api/legacycourier,请看这里jsbin.com/nugif/1/edit
标签: ajax json angularjs asp.net-web-api asp.net-web-api2