运用Ng开辟中必不可少要用到$http通讯,那末这个$http 和JQ封装好的ajax有什么区别呢?
1.$http 的post通报参数要领差别
ng运用post要领通报的参数是json花样,而Jq的post要领通报过去的参数是form表格通报体式格局,所以假如运用ng开辟,最好一开始就和背景约定好吸收数据时先剖析json数据,不然背景很有能够吸收不了数据。
2.ng能合营$q运用Promise体式格局
虽然新版Jq也支撑Promise,不过Ng的也很不错
附上一篇文章
https://segmentfault.com/a/1190000002788733
3.ng能写拦截器,一致处置惩罚某些状况
平常运用Jq的Ajax时,都会做一些毛病处置惩罚,然则假如项目巨大了,有些毛病处置惩罚是反复屡次誊写的。就算是简简单单写一个 error
要领,写多了也会以为很烦。
然则Ng支撑一个拦截器的效劳
angular.module("app").factory('myInterceptor', ['$log', function($log) {
//拦截器 一致处置惩罚 上岸非常状况
var myInterceptor = {
response: function(response) {
// $rootScope.loading = false;
if (response.status == 200) {
var info = response.data;
if (info.status == 0) {
location.href = "/adminWcloud/login.html";
}
} else {
ot.warn("此次要求发作毛病")
}
response.config.responseTimestamp = new Date().getTime();
return response;
}
};
return myInterceptor;
}]);
以上代码是建立一个叫myInterceptor
的效劳,response
示意假如要求有响应时实行funtion
那末当要求状况为200
时就是要求胜利,不是就是要求失利,所以一致一个毛病提醒要领(ot为本人封装好的一个提醒要领
)。但要求胜利不代表此次要求没有毛病,比方我吸收到要求数据有个字段属性为0时,代表 用户操纵非常 , 我须要将用户弹回上岸页面,从新上岸。
然后在app中注入效劳
$httpProvider.interceptors.push('myInterceptor');