2017-01-06 1 views
2

저는 AngularJS를 사용하고 있으며 데이터를 POST 할 공급 업체가 있습니다. 제출하면 사용자가 내 사이트로 다시 리디렉션됩니다.동작 특성이있을 때 AngularJS 폼 유효성 검사

<form method="post" action="https://api.chargify.com/api/v2/signups"> 
    <input type="hidden" name="secure[api_id]" value="1234" /> 
    <input type="hidden" name="secure[timestamp]" value="1301148971" /> 
    <input type="hidden" name="secure[nonce]"  value="5b2763d0-39e1-012e-858d-64b9e8d3946e" /> 
    <input type="hidden" name="secure[data]"  value="one=uno&amp;two=dos" /> 
    <input type="hidden" name="secure[signature]" value="412951d095ebbb3800dfb2126fe5073d2ab6c260" /> 
</form> 

See Chargify Direct Signups for more info

그들은 내가 데이터를 게시 할 $ HTTP 서비스를 사용할 수 없습니다 CORS 설정이 없습니다. 나는 이것을 옛 학교 형식으로해야만하는 것 같다. 나는 각도 검증 및 양식 제출 방지와 관련된 문제에 봉착하고 있습니다. 분명히 각이 ignores the result of the ng-submit when an action attribute is present입니다.

는 또한이 기본 동작을 (양식 서버로 요청을 전송하고 현재 페이지를 다시로드 의미) 방지 할 수 있지만 양식 조치를 포함하지 않는 경우에만, 데이터 행동, 또는 X 액션 속성.

유효성 검사가 HTML5 브라우저 유효성 검사에는 너무 복잡하므로 데이터가 유효하지 않은 경우 양식 제출을 막기 위해 액세스 권한이 필요합니다. 나는 이것에 좀 붙어있다. 이것은 해결하기 쉬운 문제 여야 할 것처럼 보이지만 괜찮은 해결책은 지금까지 나를 피했습니다. 다른 사람이이 문제를 해결 했습니까?

http://plnkr.co/edit/p83VEFwJVbRjOoggfNpb?p=preview

+0

어쩌면 당신은 "프록시"요청을 만들 수 있습니다 - $ 사용하여 웹 사이트에 대한 몇 가지 엔드 포인트에 대한 HTTP를 전화 걸기와 서버 (예를 들어 컬을 사용) 서비스에 대한 요청을 게시하려면 실행하자에 데이터를 반환 클라이언트 –

+1

데이터 PCI 컴플라이언스에 영향을 미치므로 내 서버를 통과 할 수 없습니다. ( –

+0

내가 생각할 수있는 유일한 생각은 [redirection-uri] (https://docs.chargify.com/chargify-direct-introduction#redirection- uri) 매개 변수를 사용하고 사용자가 돌아올 때 쿼리의 매개 변수를 확인하는 페이지로 다시 리디렉션합니다. –

답변

0

이 조금 해키 느낌하지만 난 더 AngularJS와 솔루션을 찾을 수있을 때까지 나는 그것을 조금 jQuery를 뿌려했습니다 : 나는이 문제를 보여주기 위해 단순화 된 plunker을 확인했습니다

:

$("#billingForm").submit(function(e){ 
    var valid = $scope.billingForm.$valid; 
    if (valid) { 
     return true; 
    } 
    else { 
     e.preventDefault(); 
     return false; 
    } 
    });