zoukankan      html  css  js  c++  java
  • ionic使用常见问题(八)——PHP无法获取$http的post数据

    一个简单的post请求

    $http.post('do-submit.php',myData)
    
    .success(function(){
    
        // some code
    
    });

     

    可是,用angularjs的$http提交的数据,在php服务器端却无法通过$_REQUEST/$_POST获取到

    而是需要:

    $params= json_decode(file_get_contents('php://input'),true);

    解决方案是什么?

    1. 在服务器端(PHP)通过  $params = json_decode(file_get_contents(‘php://input’),true);   获取参数,小项目可以,大项目要一个一个改。(不推荐)
    2. 修改Angular的$httpProvider的默认处理:http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/  (为了便于以后的管理,这是最好的办法)
    3. 在$http 增加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(“&”);
      },
    4. 配置$httpProvider
    var myApp = angular.module(‘app’,[]);
    
    myApp.config(function($httpProvider){
    
    $httpProvider.defaults.transformRequest = function(obj){
    
    var str = [];
    
    for(var p in obj){
    
    str.push(encodeURIComponent(p) + “=” + encodeURIComponent(obj[p]));
    
    }
    
    return str.join(“&”);
    
    }
    
    $httpProvider.defaults.headers.post = {
    
    ‘Content-Type’: ‘application/x-www-form-urlencoded’
    
    }
    
    });
  • 相关阅读:
    我的学习记录-JAVA SE 03
    我的学习记录-JAVA SE 02
    我的学习记录-JAVA SE 01
    我的mysql的学习记录
    Hibernate4学习一
    java3
    java5
    java基础4
    java2
    java
  • 原文地址:https://www.cnblogs.com/tdalcn/p/7119440.html
Copyright © 2011-2022 走看看