一、现状
使用了angular1.6最新版,运行以前的项目报错,按F12打开调试界面,控制台输出以下信息$http.get(...).success is not a function
,也就是说找不到success方法,同样也找不到error方法。
二、原因
通过google一通,发现angular从1.5版本起就多了一个then方法,并不再建议使用success和error方法(but没有移除)。但是从1.6版本开始,angular正式移除了success和error方法,这也是我们使用angular最新版跑以前的项目时候会报以上错误的原因。
三、解决办法
1、方案一:使用新的then方法替代
基本语法如下:
// Simple GET request example:$http({ method: 'GET', url: '/someUrl'}).then(function successCallback(response) { // this callback will be called asynchronously // when the response is available }, function errorCallback(response) { // called asynchronously if an error occurs // or server returns response with an error status. });
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
2、方案二:使用angular 1.5版本(同时兼容两种写法)
如果是旧的项目,建议采用这种方案,否则以前的代码大量使用了.success()和.error()改起来会非常的蛋疼!!
四、参考
关于angular $http使用的官方文档:
https://docs.angularjs.org/api/ng/service/$http
Tips:网上有些文章比较过时,大家可以优先考虑看下官方文档,示例也很齐。
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow