用角度发送请求 - 请求中的空元素
问题描述:
我使用提交的表单发送带有角度的POST请求。 我有optionals输入字段,当我键入的东西那里删除它,然后在我的请求我有这个字段包含“”。 这是怎么回事?用角度发送请求 - 请求中的空元素
那我怎么看形式:
<label class="col-md-2 col-xs-2 my-label" for="contactFirstName">Imię</label>
<div class="col-md-3 col-xs-3">
<input type="text" class="form-control" id="contactFirstName" name="contactFirstName"
placeholder="Imię"
ng-model="loan.newLoan.contactPerson.firstName" >
</div>
而这就是我如何发送请求:
function create() {
return RequestFactory.save({id1:'loans', id2:'create'},vm.newLoan,
function() {
MessageFactory.setSuccess({show:true, msg:'success'});
$state.reload('loan.new');
}, function(response){
vm.isError = true;
ErrorFactory.errorHandler(vm.errorMessages, response);
});
}
和发送的时候,我与这个领域要求JSON看起来是这样的:
{"firstName":""}
那好吗?或者请求中没有该字段,如果它是空的? 我该怎么做?
答
那好吗?
是或否,取决于您的后端服务所期望的。
你可以做这样的事情
function create() {
var data = {};
if (vm.newLoan.contactPerson.firstName) {
data.firstName = vm.newLoan.contactPerson.firstName;
}
RequestFactory.save({ id1: 'loans', id2: 'create' }, data, ...);
}
去除角空字段和你应该在你的后端服务做辅助检查,以删除空字段,如果你不想保存它。即使您使用JavaScript验证数据,也不要信任从客户端发送的数据。始终在服务器代码中进行额外检查。
答
因此,您的html输入字段不是必需的,它是完全正确的。希望您的支持服务也是一个可选字段。如果它是必填字段,那么当按下Save
按钮时,必须按照以下所示进行检查。
这仅仅是一个例子:
的Html
<button type="submit" class="btn btn-primary blue" ng-
click="vm.save(yourFormName.$valid)"> Save</button>
JS
//to save
vm.save = function (isValid) {
if (isValid) {
//fires save method here
}
};
您好!请接受我的答案,如果它解决了你的问题。 :) [如何接受答案工作?](http://meta.stackexchange.com/a/5235/170863) –
是的,它解决了它,谢谢。 – luk1