这篇文章,主要是通过我们熟悉的jquery中ajax和jsonp的类型方式,总结一下$http的使用。

$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。
1. angular中的ajax
写法一:
$http({
method: 'GET', //可以改成POST
url: '/someUrl'
}).then(function successCallback(response) {
// 请求成功执行代码
}, function errorCallback(response) {
// 请求失败执行代码
});
示例:
var app = angular.module('myApp', []);
app.controller('siteCtrl', function($scope, $http) {
$http({
method: 'GET',
url: 'https://www.runoob.com/try/angularjs/data/sites.php',
}).then(function successCallback(response) {
console.log(response.data);
}, function errorCallback(response) {
console.log('失败');
});
});
写法二:
①GET请求
$http.get('/someUrl',config).then(successCallback, errorCallback);
$http.get('/someUrl',{params:{}}).then(successCallback, errorCallback);
示例:
$http.get({
'http://10.30.24.12/emp-management/empDetail',
{params:{"id":3}}
}).then(function successCallback(response) {
console.log(response.data.name);
}, function errorCallback(response) {
console.log('失败');
});
②POST请求
$http.post('/someUrl', data, config).then(successCallback, errorCallback);
示例:
$http({
method:'post',
url:'post.php',
data:{name:"aaa",id:"1",age:"20"}
}).then(function successCallback(response) {
console.log(response);
}, function errorCallback(response) {
console.log('失败');
});
//但是,这时候你可能收不到返回的数据,结果为null,这是因为要转换成form data。
//解决方案(在post中进行相应配置):
$http({
method:'post',
url:'post.php',
data:{name:"aaa",id:"1",age:"20"},
headers:{'Content-Type': 'application/x-www-form-urlencoded'},
transformRequest: function(obj) {
var str = [];
for(var p in obj){
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
}
return str.join("&");
}
}).then(function successCallback(response) {
console.log(response);
}, function errorCallback(response) {
console.log('失败');
});
/*
原理解读:
首先,配置headers是因为,POST提交时,使用的Content-Type是application/x-www-form-urlencoded,
而使用原生AJAX的POST请求如果不指定请求头RequestHeader,默认使用的Content-Type是text/plain;charset=UTF-8,
在html中form的Content-type默认值是Content-type:application/x-www-form-urlencoded,所以要进行相应的配置。
然后,配置transformRequest是因为,如果参数是对象,需要转化一下。
*/
2.angular中的jsonp
$http({method:'JSONP',url:''}).success().error();
$http.jsonp('/someUrl').success().error();
//这里要注意,跨域请求的url后一定要追加参数callback,并且callback的值是固定的,即JSON_CALLBACK,尽量不要去做任何改动
示例:
$http({
method: 'JSONP',
url: 'http://www.b.com/test.php?callback=JSON_CALLBACK'
}).success(function(response){
console.log(response);
});
$http.jsonp(
'http://www.b.com/test.php?callback=JSON_CALLBACK'
).success(function (response){
console.log(response);
});
3.最后,总结一*意事项:
(1)代码里使用的.then()也可以写成.success().error(),但是v1.5中 $http 的 success 和 error 方法已废弃,使用 then 方法替代;
(2)关于参数:用GET的时候就是params,用POST/PUT/PATCH/DELETE就是data;
(3)$http.jsonp跨域请求的url后一定要追加参数callback,并且callback的值是固定的,即JSON_CALLBACK,尽量不要去做任何改动。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# angularjs
# 交互
# $http
# angularjs前后端交互
# 深入理解Angularjs中$http.post与$.post
# AngularJS $http模块POST请求实现
# AngularJS出现$http异步后台无法获取请求参数问题的解决方法
# 简介AngularJS中$http服务的用法
# 解决angularjs中同步执行http请求的方法
# 是因为
# 去做
# 要注意
# 这篇文章
# 这是因为
# 转换成
# 大家多多
# 默认值
# 收不到
# 主要是
# 这时候
# https
# www
# runoob
# myApp
# module
# app
# scope
# siteCtrl
# controller
相关文章:
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
如何通过万网虚拟主机快速搭建网站?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
定制建站流程解析:需求评估与SEO优化功能开发指南
C#如何使用XPathNavigator高效查询XML
沈阳制作网站公司排名,沈阳装饰协会官方网站?
高端网站建设与定制开发一站式解决方案 中企动力
建站之星安装后如何自定义网站颜色与字体?
广州美橙建站如何快速搭建多端合一网站?
建站之星导航配置指南:自助建站与SEO优化全解析
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
建站主机默认首页配置指南:核心功能与访问路径优化
如何正确下载安装西数主机建站助手?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
建站之星客服服务时间及联系方式如何?
如何在IIS管理器中快速创建并配置网站?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
如何快速搭建高效简练网站?
建站主机数据库如何配置才能提升网站性能?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
实例解析Array和String方法
如何配置FTP站点权限与安全设置?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
如何在Windows服务器上快速搭建网站?
广平建站公司哪家专业可靠?如何选择?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
如何用已有域名快速搭建网站?
如何彻底删除建站之星生成的Banner?
深圳网站制作的公司有哪些,dido官方网站?
如何用西部建站助手快速创建专业网站?
建站之星各版本价格是多少?
如何在云服务器上快速搭建个人网站?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
建站之星如何修改网站生成路径?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
临沂网站制作公司有哪些,临沂第四中学官网?
高防服务器租用指南:配置选择与快速部署攻略
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
建站主机选购指南:核心配置与性价比推荐解析
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
制作营销网站公司,淘特是干什么用的?
如何确保FTP站点访问权限与数据传输安全?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
开源网站制作软件,开源网站什么意思?
家庭建站与云服务器建站,如何选择更优?
如何注册花生壳免费域名并搭建个人网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。