我有一个简单的POST http请求,并得到一个错误的Undefined property: stdClass::$number和Undefined property: stdClass::$message。这是我的密码:
smsController.js
angular
.module('smsApp')
.controller('smsController', smsController)
.config(config);
function config($routeProvider) {
$routeProvider
.when('/', {
controller: 'smsController',
templateUrl: 'app/views/messageForm.html'
});
}
function smsController($scope, $http) {
$scope.sendMessage = function() {
$scope.loading = true;
$scope.smsForm = {
number: undefined,
message: undefined
};
var data = {
number: $scope.smsForm.number,
message: $scope.smsForm.message
};
var req = {
method: 'POST',
url: 'app/endpoints/sendsms.php',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: data
};
$http(req)
.then(function successCallback(response) {
console.log(response);
$scope.loading = false;
}, function errorCallback(response) {
console.log(response);
});
}
}messageForm.html
<div ng-hide="loading">
<div class="input-field col s12">
<input type="text" ng-model="smsForm.number" maxlength="11">
</div>
<div class="input-field col s12">
<textarea ng-model="smsForm.message" maxlength="200"></textarea>
<button ng-click="sendMessage()">Send</button>
</div>
</div>sendsms.php
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
echo json_encode($request);控制台

没有传递数据,我得到了未定义的属性错误。我是不是漏掉了什么?
发布于 2015-09-30 13:39:29
您正在将undefined设置在sendMessage()函数中,该函数将覆盖将要发送的任何值-用户entered...so。
更改模型对象的声明,使其处于函数之外,以便由子作用域继承:
从…
$scope.sendMessage = function() {
$scope.loading = true;
$scope.smsForm = {
number: undefined,
message: undefined
};
....
// ajax code
}至
$scope.smsForm = {};
$scope.sendMessage = function() {
$scope.loading = true;
....
// ajax code
}ng-model将自动向$scope.smsForm对象添加属性,这就是为什么这里将其声明为空对象的原因。
另外,由于$scope.smsForm具有api中所需的属性,因此不需要将它们传输到新的对象data。
$http.post('app/endpoints/sendsms.php', $scope.smsForm ).then(...
https://stackoverflow.com/questions/32867367
复制相似问题