用角度发送请求 - 请求中的空元素

用角度发送请求 - 请求中的空元素

问题描述:

我使用提交的表单发送带有角度的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":""} 

那好吗?或者请求中没有该字段,如果它是空的? 我该怎么做?

+0

您好!请接受我的答案,如果它解决了你的问题。 :) [如何接受答案工作?](http://meta.stackexchange.com/a/5235/170863) –

+0

是的,它解决了它,谢谢。 – luk1

那好吗?

是或否,取决于您的后端服务所期望的。

你可以做这样的事情

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 
     } 
    };