问题描述
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; }})
问题解答
回答1:你的php后端有开post接口么?我感觉是你只开了get类型的接口。
除此之外,不知道你后端的约定数据格式是啥,你这儿的数据是经过jq的param过的字符串,若你没指定发送的内容格式的header,你的后端很可能不知道怎么解析。或者直接把formbody当个字符串解析了。
之前的一篇文章,或许对你有用http://blog.anchengjian.com/#...