$http-get方法即使使用AngularJS中.Net WebApi的有效json也会失败
$http get method fails even with valid json from .Net WebApi in AngularJS
我得到了一个有效的JSON请求,但只调用了$http fail方法。它在firebug中显示OK 200。此外,视图没有得到更新。新手试用AngularJS,这样可能会出现问题:)
$http.jsonp("http://localhost:51377/api/Books/1").success(function(data, status, headers, config) {
alert("Suc");
$scope.people = data;
}).error(function(data, status, headers, config) {
$scope.people = data;
alert("fail");
});
这是firebug中的响应:
{"ID":1,"BookName":"ASP.Net"}
同样失败的原因:
[{"ID":1,"BookName":"ASP.Net"}]
在$http
调用中得到404状态码。我正在使用jsonp
,应该注意CORS吗?当我在某处阅读时。我的角度在文件中://协议
更新-1:尝试从VS在localhost中启动我的angular。相同的结果
更新-2:我在我的后端.net webapi中添加了配置更改以删除CORS,现在它可以与以下代码一起使用,但使用jsonp
的上述原始代码仍然无法通过
$http({
method: 'get',
url: 'http://localhost:51377/api/Books/',
responseType: "json"
}).success(function (data, status, headers, config) {
alert(data);
console.log('Success: ' + data);
$scope.people = data;
}).error(function (data, status, headers, config) {
console.log('Error: ' + data);
});
我认为您需要在请求中添加一个回调参数:
$http.jsonp("http://localhost:51377/api/Books/1?callback=JSON_CALLBACK")
更多信息请点击此处:
https://docs.angularjs.org/api/ng/service/%24http#jsonp
另外,请参阅这个JSFiddle(不是我的):
http://jsfiddle.net/saarmstrong/hYACX/8/light/
当您删除回调参数时,它将失败。。。
尽量只使用"/api/Books/1"而不是"http://localhost:51377/api/Books/1"
相关文章:
- 如何将数组转换为有效的json
- 当其他解析器认为意外的令牌有效时,json.parse会失败
- jquery ajax”;SyntaxError:意外的输入结束“;基于有效的JSON
- 使用Underscore.js修改json数组中所选元素的更有效方法
- 将JSON存储和恢复到此Ionic应用程序的最有效方法
- JSON.parse给了我一个错误,但JSONLint说它'是一个有效的json
- I'我在页面加载时将整个$_SESSION变量放入一个json对象中.虽然这对我有效,但这是一个好的做法吗
- $http-get方法即使使用AngularJS中.Net WebApi的有效json也会失败
- 从文件目录结构创建JSON数据的有效功能
- jQuery.parseJSON()未在Windows服务器上解码有效的Json字符串
- 正在将字符串转换为有效的JSON对象
- 接收package.json的解析错误.验证为有效的json
- 接收json异步响应的最有效方式
- JavaScript JSON.任何更有效的方法
- 修复无效JSON的最有效方法
- d3.json有效,但$.getJson失败
- 具有JSON有效负载的Crossrider ajax帖子请求在Rails后端中无法正确接收
- Json响应无效,Json有效
- 如何使我的json有效
- JSON有效负载问题,javascript编码