angularJs的那些坑——$http服务

最近一段时间在学习angularJs,测试的时候发现http服务post传的数据,后台接收不到。
js:
angular.module("http",[]).factory("httpService",["$http",function($http){
var c = {};
return c.login = function(a){
var url = "login.php";
return $http({
method : "POST",
url:url,
data:$.param(a)
})
},c
}])

login.php

if($_POST){
    $username = $_POST['email'];
    $password = $_POST["password"];
    if(($username == $admin['username']) && ($password == $admin['password'])){
        echo '{"code":"200","list":null,"msg":"登录成功"}';
    }
}

查资料才知道,angular http服务默认的Content-Type为application/json,而php的$_POST只能接收Content-Type为application/x-www-form-urlencoded的数据。所以需要把http服务加一个参数
return $http({
method : "POST",
url:url,
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
},
data:$.param(a)
})

另外php的输入流php://input可以获取到Content-Type为application/json的数据。$data = file_get_contents("php://input");且php://input不能用于enctype=multipart/form-data”(这个应该是表单提交的数据)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值