angular 1.6 $http.get(...).success is not a function 解决办法

一、现状

使用了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.
  });

2、方案二:使用angular 1.5版本(同时兼容两种写法)

如果是旧的项目,建议采用这种方案,否则以前的代码大量使用了.success()和.error()改起来会非常的蛋疼!!

四、参考

关于angular $http使用的官方文档:
https://docs.angularjs.org/api/ng/service/$http

Tips:网上有些文章比较过时,大家可以优先考虑看下官方文档,示例也很齐。

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...