2016-04-24 65 views
0

我使用提交的表單發送帶有角度的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

回答

1

那好嗎?

是或否,取決於您的後端服務所期望的。

你可以做這樣的事情

function create() { 
    var data = {}; 

    if (vm.newLoan.contactPerson.firstName) { 
     data.firstName = vm.newLoan.contactPerson.firstName; 
    } 

    RequestFactory.save({ id1: 'loans', id2: 'create' }, data, ...); 
} 

去除角空字段和你應該在你的後端服務做輔助檢查,以刪除空字段,如果你不想保存它。即使您使用JavaScript驗證數據,也不要信任從客戶端發送的數據。始終在服務器代碼中進行額外檢查。

1

因此,您的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 
     } 
    };