AngularJS下$http服务Post方法传递json参数的实例


Posted in Javascript onMarch 29, 2018

本文主要介绍如何使用Angularjs $http服务以POST方法向服务器传递json对象数据。

具体如下:

一、$http POST方法默认提交数据的类型为application/json

var data = {'wid':'0', 'praise' : '25'}; 
$http.post(url, data).success(function(result) { 
 // 
});

最终发送的请求是:

POST http://www.example.com HTTP/1.1 
Content-Type: application/json;charset=utf-8 
 
{'wid':'0','praise':'25'}

默认的这种方式可以直接将json对象以字符串的形式传递到服务器中,比较适合 RESTful 的接口。但是php脚本的$_POST无法从请求体中获得json数据。

此时可以用:

$data = file_get_contents("php://input"); //获得原始输入流

注:enctype="multipart/form-data" 的时候 php://input 是无效的

获得请求原始输入流之后再做相应处理就可以获得json数据了。

二、 采用x-www-form-urlencoded 方式提交获得json数据

app.factory("Comment",function($http){
 return {
  get : function(commentFileUrl) {
   return $http({
    method: "GET",
    url: commentFileUrl,
    params: {R:Math.random()},
    headers: {'Cache-Control':'no-cache'}
   });
  },

  //保存一个评论
  save : function(toUrl,saveFileUrl,Data) {
   $http({
    method: "POST",
    url: toUrl,
    data: {saveUrl:saveFileUrl,commit:Data},
    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("&");
    }
   }).success(function(data){
    console.log("数据已保存!");
   }).error(function(data) {
    alert("数据保存失败,错误信息:" + JSON.stringify({data:data}));
   });
  }
 }
});
var updateClickRate={'wid':'0','click_rate':'87'};
Comment.save("php/updateWork.php","../userdata/work_content.json",JSON.stringify(updateClickRate));

最终发送的请求是:

AngularJS下$http服务Post方法传递json参数的实例

然后php服务端通过$_POST['commit'] 对象就可以获得json字符串了。json对象用于http数据传输方便易用,相比xml更加小巧轻便。希望本文对你有所帮助。推荐一篇文章:HTTP四种常见的POST提交数据方式然后 php服务端通过$_POST['commit'] 对象就可以获得json字符串了。

json对象用于http数据传输方便易用,相比xml更加小巧轻便。希望本文对你有所帮助。

以上这篇AngularJS下$http服务Post方法传递json参数的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
如何做到打开一个页面,过几分钟自动转到另一页面
Apr 20 Javascript
用javascript实现的仿Flash广告图片轮换效果
Apr 24 Javascript
jQuery 研究心得 取得属性的值
Nov 30 Javascript
javascript不同页面传值的改进版
Sep 30 Javascript
Javascript学习笔记二 之 变量
Dec 15 Javascript
js常用排序实现代码
Dec 28 Javascript
JS平滑无缝滚动效果的实现代码
May 06 Javascript
关于json字符串与实体之间的严格验证代码
Nov 10 Javascript
H5上传本地图片并预览功能
May 08 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
Dec 20 Javascript
Vue登录主页动态背景短视频制作
Sep 21 Javascript
浅析JavaScript 函数防抖和节流
Jul 13 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
Mar 29 #Javascript
利用js实现前后台传送Json的示例代码
Mar 29 #Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
Mar 29 #Javascript
JS获取url参数,JS发送json格式的POST请求方法
Mar 29 #Javascript
spirngmvc js传递复杂json参数到controller的实例
Mar 29 #Javascript
Vue.js 表单控件操作小结
Mar 29 #Javascript
js传递数组参数到后台controller的方法
Mar 29 #Javascript
You might like
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
详解PHP中的PDO类
2015/07/06 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
2015/11/30 PHP
初识ThinkPHP控制器
2016/04/07 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
JavaScript动态设置div的样式的方法
2015/12/26 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
js选择器全面解析
2016/06/27 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
Vue加载组件、动态加载组件的几种方式
2018/08/31 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
python求素数示例分享
2014/02/16 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
python字符串的方法与操作大全
2018/01/30 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
2019/07/03 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
Python range与enumerate函数区别解析
2020/02/28 Python
python 实现任务管理清单案例
2020/04/25 Python
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
社团文化节邀请函
2014/01/10 职场文书
英文导游欢迎词
2014/01/11 职场文书
2015年社区工作总结
2015/04/08 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
2019年幼儿园管理条例范本!
2019/07/17 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL