gpt4 book ai didi

PHP/Angularjs/发布数据为空

转载 作者:可可西里 更新时间:2023-11-01 00:42:24 27 4
gpt4 key购买 nike

我在表单中选择了两个字段(month 和 origin)并将其提交给 AngularJS Controller ,我使用的是与 Ionic 框架打包在一起的 1.3.13 版本。

观察 then 方法中的 console.log 值已正确填充。

返回的 q.promisse 具有此值:[object, object]

HTML 模板的列表未填充正确的预期值。

这些值不会填充 PHP API 中的 PHP POST 变量。

如何填充 POST 数据???

在我的模板中,我提交给search 方法:

 <form method="post" ng-controller="AcpSearchCtrl" ng-submit="search(data)">
<select name="month" ng-model="data.month">
<option value="01">January</option>

并且在我的 Controller 中使用 http.postpromise:

.controller('AcpSearchCtrl', function($scope, ApiAcpSearch, $ionicLoading, $timeout, $http, ApiAcpEndpoint, $q) {  
$scope.search = function(data) {
$ionicLoading.show({
noBackdrop: false,
template: '<p>searching ...</p>'
});
var q = $q.defer();
$scope.formData = {};
$scope.submission = false;
var param = function(data) {
var returnString = '';
for (d in data){
if (data.hasOwnProperty(d))
returnString += d + '=' + data[d] + '&';
}
return returnString.slice( 0, returnString.length - 1 );
};
console.log('formData : '+$scope.formData);
return $http({
url:ApiAcpEndpoint.url,
data : param($scope.formData),
method : 'POST',
headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}
})
.then(function(data) {
q.resolve(data);
var acp = {};
acp.qdata = [ data ];
$scope.data = acp.qdata;
$ionicLoading.hide();
return q.promise;
});
}
})

最佳答案

AngularJS 默认以 JSON 格式发送数据。您不会在常规 PHP 全局变量($_REQUEST、$_POST 或 $_GET)中找到它。

您有两种方法可以解决这个问题:

为 AngularJS 全局设置默认 Content-Type(仅在请求前设置 header 将不起作用)。

var app = angular.module("app", []);
app.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
$httpProvider.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";
}]);

替代方案是您处理 AngularJS 在 PHP 中发送数据的方式:

$angularJSData = json_decode(file_get_contents("php://input"));

// json_decode will create an object so if you need in array format
$angularJSData = (array)$angularJSData;

有了这些知识,您就可以创建一个函数,甚至是您自己的全局函数。

关于PHP/Angularjs/发布数据为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31438695/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com