AngularJS中$http的交互问题
发布时间 - 2026-01-11 00:24:49 点击率:次这篇文章,主要是通过我们熟悉的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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用虚拟主机快速搭建网站?详细步骤解析
EditPlus中的正则表达式实战(5)
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
Laravel怎么连接多个数据库_Laravel多数据库连接配置
WEB开发之注册页面验证码倒计时代码的实现
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
JavaScript如何操作视频_媒体API怎么控制播放
Laravel如何使用Service Container和依赖注入?(代码示例)
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
实例解析angularjs的filter过滤器
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
Laravel如何保护应用免受CSRF攻击?(原理和示例)
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
node.js报错:Cannot find module 'ejs'的解决办法
油猴 教程,油猴搜脚本为什么会网页无法显示?
Laravel如何实现用户密码重置功能?(完整流程代码)
如何利用DOS批处理实现定时关机操作详解
Laravel怎么调用外部API_Laravel Http Client客户端使用
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
怎么用AI帮你为初创公司进行市场定位分析?
专业商城网站制作公司有哪些,pi商城官网是哪个?
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
Laravel如何实现API速率限制?(Rate Limiting教程)
Laravel storage目录权限问题_Laravel文件写入权限设置
Mybatis 中的insertOrUpdate操作
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
python中快速进行多个字符替换的方法小结
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
创业网站制作流程,创业网站可靠吗?
Firefox Developer Edition开发者版本入口
Laravel定时任务怎么设置_Laravel Crontab调度器配置
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
高性能网站服务器配置指南:安全稳定与高效建站核心方案
Laravel怎么使用artisan命令缓存配置和视图
b2c电商网站制作流程,b2c水平综合的电商平台?
java ZXing生成二维码及条码实例分享
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
PHP正则匹配日期和时间(时间戳转换)的实例代码
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】

