Heim > Fragen und Antworten > Hauptteil
html页面和php页面都确定没错,使用jquerymobile和angularjs结合进行ajax请求时,为什么post请求不成功,而get请求就可以呢?js代码如下:
angular.module('kaifanla',['ng','ngTouch']).controller('orderCtrl',function ($scope,$http,parseSearch) {
$scope.isSubmit=false;
var did=parseSearch(location.search).did;
$scope.order={did:did};
$scope.submit=function () {
$scope.isSubmit=true;
// var str=jQuery.param($scope.order);
// $http.get('../data/order_add.php?did='+did+'&user_name='+$scope.order.user_name+'&sex='+$scope.order.sex+'&phone='+$scope.order.phone+'&addr='+$scope.order.addr).
// success(function (data) {
// console.log(data);
// $scope.oid=data.oid;
// })
var str=jQuery.param($scope.order);
$http.post('../data/order_add.php',str).success(function (data) {
console.log(data);
})
}
}).
service('parseSearch', function () {
return function (search) { //可以在所有的Controller中使用的一个函数——Service
/*将形如'?did=2&pno=3&uname=tom&loc=bj转换为一个对象'*/
var result = {};
search = search.substring(1);
var arr = search.split('&'); //['did=3', 'pno=5', 'uname=tom']
angular.forEach(arr, function (v, k) {
var kv = v.split('=');
result[kv[0]] = kv[1];
})
return result;
}
})
PHPz2017-05-15 17:12:20
你的php后端有开post接口么?我感觉是你只开了get类型的接口。
除此之外,不知道你后端的约定数据格式是啥,你这儿的数据是经过jq的param过的字符串,若你没指定发送的内容格式的header,你的后端很可能不知道怎么解析。或者直接把formbody当个字符串解析了。
之前的一篇文章,或许对你有用
http://blog.anchengjian.com/#...