打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
angularjs中$http模块POST请求request payload转form data

angularjs发起$http.post请求:

代码如下:

  1. $http({  
  2.     method:'post',  
  3.     url:'post.php',  
  4.     data:{name:"aaa",id:1,age:20}  
  5. }).success(function(req){  
  6.     console.log(req);  
  7. })  

运行结果(chrome→network):

这样的话在PHP中用$_POST是取不到的。

解决方案:

1.配置$httpProvider:

  1.  var myApp = angular.module('app',[]);  
  2.  myApp.config(function($httpProvider){  
  3.   
  4.    $httpProvider.defaults.transformRequest = function(obj){  
  5.      var str = [];  
  6.      for(var p in obj){  
  7.        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));  
  8.      }  
  9.      return str.join("&");  
  10.    }  
  11.   
  12.    $httpProvider.defaults.headers.post = {  
  13.         'Content-Type': 'application/x-www-form-urlencoded'  
  14.    }  
  15.   
  16. });  

2.在post中配置:

  1. $http({  
  2.    method:'post',  
  3.    url:'post.php',  
  4.    data:{name:"aaa",id:1,age:20},  
  5.    headers:{'Content-Type': 'application/x-www-form-urlencoded'},  
  6.    transformRequest: function(obj) {  
  7.      var str = [];  
  8.      for(var p in obj){  
  9.        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));  
  10.      }  
  11.      return str.join("&");  
  12.    }  
  13. }).success(function(req){  
  14.        console.log(req);  
  15. })  

运行结果(chrome→network):

至此成功换成form data;

3.PHP中放弃$_POST;

  1. $rawpostdata = file_get_contents("php://input");  
  2. $post = json_decode($rawpostdata, true);  
  3. //传的数据都在$post中了;  
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
深入理解HTTP协议之POST方法——ajax实例
POST提交数据之---Content-Type的理解
PHP输入流php://input介绍
让AngularJS的$http 服务像jQuery
PHP的三种HTTP请求,php模拟post 提交
PHP如何将表单提交给自己
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服