• angularJS发起$http.post请求后台收不到数据解决方案


    AngularJS发起$http.post请求

    代码如下:

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

    这时候你会发现收不到返回的数据,结果为null,这是因为要转换成form data。
    解决方案:

    配置$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'  
       }  
    
    });  

    或者在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("&");  
       }  
    }).success(function(req){  
           console.log(req);  
    })  
  • 相关阅读:
    MySQL Unable to convert MySQL datetime value to System.DateTime 解决方案
    Zend 无限试用
    SQL 触发器
    C# 多线程示例
    JS 实现打印
    apache开启.htaccess
    MySQL 安装包下载教程
    js系列(10)js的运用(二)
    js系列(9)js的运用(一)
    js系列(8)简介
  • 原文地址:https://www.cnblogs.com/gongshunkai/p/6752647.html
Copyright © 2020-2023  润新知