默认情况下,jQuery传输数据使用Content-Type: x-www-form-urlencodedand和类似于”name=zhangsan&age=18″的序列,然而AngularJS,传输数据使用Content-Type: application/json和{ “name”: “zhangsan”, “age”: “18” }这样的json序列。
所以,他们的请求方式看起来一样,但其实不然。jquery显得更加人性化。
解决方案:
1.将http替换成jquery方式 (不推荐)
2.第二种方式:修改PHP文件的方式
3.修改当前请求:代码如下
<script>
var app = angular.module("myapp", []);
app.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'
}
});
app.controller("ctrl", ["$scope", "$http", function (scope, http) {
http({
method: 'POST',
url: 'http://localhost/web007/data.php',
data: {
"username": "iwen"
},
}).success(function (data, header, config, status) {
console.log(data);
// scope.msg = data.list;
}).error(function (data, header, config, status) {
});
}])
</script>