2017-07-04 4 views
0

Ich benutze eckig, um eine Post-Anfrage an ein Back-End mit Symphony, mit Daten aus einem HTML-Formular. Das Problem ist, dass es überhaupt nicht funktioniert, und es sendet mir einen möglichen unbehandelten Ablehnungsfehler in der Browser-Konsole. Wenn ich den REST-Client meines Browsers verwende, funktioniert es einwandfrei. Hier sind einige Teile des Codes:

Hier ist der HTML:

<header> 
    <div id="categorymenu"> 
     <nav class="subnav"> 
      <a href="#!welcome" class="logo pull-left"> 
       <img style="height:50%; /* width: 70%; */ max-width: 100%;" title="Simplepxcreate" alt="Simplepxcreate" src="images/logo.png"> 
      </a> 

      <ul class="nav-pills categorymenu container" style="color: #254F97 !important"> 
       <li> 
        <a class="{{menActive1}} home" href="#!welcome" style="box-shadow: #CCC 1.5px 1.5px 0px 0px;"> 
         <i class="icon-home icon-white font18"></i> 
         <span> Accueil</span> 
        </a> 
       </li> 
       <li> 
        <a class="{{menActive2}}" href="#!catalogue/all/all" style="box-shadow: #CCC 1.5px 1.5px 0px 0px;"> 
         <i class="icon-shopping-cart"></i> 
         Produits 
        </a> 
        <div style="border-radius: 0px; box-shadow: #254F9766 1.5px 1.5px 0px 0px;"> 
         <div class="loader" ng-show="loader1" style="margin-left: 50%"></div> 
         <ul > 
          <li ng-repeat="cathegorie in Acccathegories" style="border-bottom: 1px solid; border-bottom-style: dotted;"> 
           <a href="#!catalogue/{{cathegorie.category.id}}/all"> 
            <i class="icon-cogs"></i> 
            {{cathegorie.category.name}} 
           </a> 
          </li> 
         </ul> 
        </div> 
        <!-- 
         Debut 
         Ceci n'est pas utilisé voila pour quoi il ne s'affiche pas : 
        --> 
        <div style="display: none; /*width:1000px;*/"> 
         <!-- 
          <ul> 
           <li class="categorymenu" ng-repeat="cathegorie in finalCathegories"><a href="#!catalogue/{{cathegorie.id}}/all">{{cathegorie.name}}</a> 
            <ul class="nav-pills" ng.if="cathegorie.subs!='nosubs'"> 
             <li ng-repeat="sub in cathegorie.subs"><a href="#!catalogue/{{cathegorie.id}}/{{sub.id}}">{{sub.name}}</a></li> 
            </ul> 
           </li> 
          </ul> 
         --> 
         <div class="loader" ng-show="loader1" style="/*margin-left: 50%/*"></div> 

         <div> 
          <ul style="/*margin: 0; padding: 0; list-style: none;*/" style=" /*display: block; width: 1000px;*/"> 
           <div style="padding: 15px; border-bottom: dotted;/*float: left; width: 25%; margin-top: 5px; margin-left: 5px;*/ /*float: left; width: 400px; margin-top: 20px; margin-left: 20px;*/" ng-repeat="cathegorie in Acccathegories"> 
            <li style=""> 
             <a href="#!catalogue/{{cathegorie.category.id}}/all" style=" background-color: #254F97; color: #FFF; padding: 5px; /*color: #254F97;*/ text-transform: uppercase; font-size: 14px; " id="mycats" > 
              <i class="fa fa-cogs"></i> 
              <img ng-if="!showSubs" src="images/repair-tools.png" style="width: 20px; height: 20px; margin-right: 10px; display: none;" > 
              {{cathegorie.category.name}} 
             </a> 
             <ul style="/*margin-left: 30px;*/ "> 
              <li ng-repeat=" sub in cathegorie.subs"> 
               <a id="mysubs" href="#!catalogue/{{sub.id}}/all">{{sub.name}}<span></span></a> 
              </li> 
             </ul> 
            </li> 
           </div> 
          </ul> 
         </div> 
         <ul> 

         </ul> 
        </div> 
        <!-- 
         Fin 
        --> 
       </li> 
       <li> 
        <a class="{{menActive3}}" href="#!nosservices" style="box-shadow: #CCC 1.5px 1.5px 0px 0px;"> 
         <i class="icon-cogs"></i> 
         Services 
        </a> 
       </li> 

       <li> 
        <a class="{{menActive4}}" href="#!devis/all" style="box-shadow: #CCC 1.5px 1.5px 0px 0px;"> 
         <i class="icon-check"></i> 
         Devis 
        </a> 
       </li> 
       <li> 
        <a class="{{menActive5}}" href="#!contact" style="box-shadow: #CCC 1.5px 1.5px 0px 0px;"> 
         <i class="icon-envelope"></i> 
         Nous contacter 
        </a> 
       </li> 
      </ul> 
     </nav> 
    </div> 
</header> 

<div id="maincontainer"> 

    <section> 
    <div class="container"> 
     <!-- breadcrumb --> 
     <ul class="breadcrumb"> 
     <li> 
      <a href="#">Home</a> 
      <span class="divider">/</span> 
     </li> 
     <li class="active">Devis</li> 
     </ul> 

     <div class="row mt40"> 
     <div class="span8"> 
      <h2 class="heading2"> 
      <span> 
       <i class="icon-phone"></i> 
       Demandez un devis 
      </span> 
      </h2> 
      <form class="form-vertical contactform" method="post" name="devis"> 
      <div class="control-group"> 
       <label for="name" class="control-label"> 
       Name 
       <span class="required">*</span> 
       </label> 
       <div class="controls"> 
       <input type="text" placeholder="Votre nom et prénom ou celui de votre société" class="required" id="name" value="" name="name" ng-model="devis.nom" style="width: 80%; border-radius: inherit;"> 
       </div> 
      </div> 
      <div class="control-group"> 
       <label for="email" class="control-label"> 
       Email 
       <span class="required">*</span> 
       </label> 
       <div class="controls"> 
       <input type="email" placeholder="Votre adresse mail" class="required email" id="email" value="" ng-model="devis.email" style="width: 80%; border-radius: inherit;"> 
       </div> 
      </div> 
      <div class="control-group"> 
       <label for="url" class="control-label"> 
       Telephone 
       </label> 
       <div class="controls"> 
       <input type="text" id="name" placeholder="Votre numéro de téléphone" value="" name="url" ng-model="devis.telephone" style="width: 80%; border-radius: inherit;"> 
       </div> 
      </div> 
      <div class="control-group"> 
       <label for="url" class="control-label"> 
       Objet 
       </label> 
       <div class="controls"> 
       <input type="text" placeholder="Objet de votre devis" id="name" value="" name="url" ng-model="devis.objet" style="width: 80%; border-radius: inherit;"> 
       </div> 
      </div> 
      <div class="control-group"> 
       <label for="url" class="control-label"> 
       Service : 
       </label> 
       <div class="controls"> 
       <select id="select" style="width: 80%; border-radius: inherit;" ng-model="devis.service"> 
        <option ng-repeat="service in Accservices" value="{{service.name}}" ng-selected="choosen.name=service.name"> 
        {{service.name}} 
        </option> 
       </select> 
       </div> 
      </div> 
      <div class="control-group"> 
       <label for="message" class="control-label"> 
       Message 
       </label> 
       <div class="controls"> 
       <textarea placeholder="Décrivez votre besoin ici" class="required" rows="6" cols="40" id="message" ng-model="devis.message" style="width: 80%; border-radius: inherit;"></textarea> 
       </div> 
      </div> 

      <div class="form-actions"> 
       <input class="btn" type="reset" value="Annuler" ng-click="abort()"> 
       <input class="btn btn-orange pull-right" type="submit" value="Envoyer" id="submit_id" style="margin-right: 20px" ng-click="askDevis(devis)"> 
      </div> 
      </form> 
     </div> 

     <!-- Sidebar Start--> 
     <div class="span4"> 
      <aside> 
      <div class="sidewidt"> 
       <h2 class="heading2"> 
       <span> 
        <i class="icon-envelope"></i> 
        Nos coordonnées 
       </span> 
       </h2> 
       <p> 
       Horraires:<br> 
       Lundi-Vendrdi: 08h-19h<br> 
       Samedi: 08h-15h<br> 
       <br> 
       <i class="icon-phone"></i> 
       Phone: (237) 33 40 53 50<br> 
       <i class="icon-envelope"></i> 
       Email: [email protected]/[email protected]<br> 
       <i class="icon-globe"></i> 
       Web: Auto22.com<br> 
       </p> 
      </div> 
      </aside> 
     </div> 
     <!-- Sidebar End--> 
     </div> 
    </div> 
    </section> 
</div> 

<!-- Footer --> 
<footer id="footer"> 
    <section class="footersocial"> 
     <div class="container"> 
      <div class="row"> 
       <div class="span3 info"> 
        <h2> <i class="icon-link"></i> LA propos </h2> 
        <ul> 
         <li><a href="">Qui sommes-nous</a> </li> 
         <li><a href="">Notre mission</a> </li> 
         <li><a href="">Notre équipe</a> </li> 
        </ul> 
       </div> 
       <div class="span3 contact"> 
        <h2> <i class="icon-phone-sign"></i> Contact </h2> 
        <ul> 
         <li class="location"> Douala, Cameroun.‎</li> 
         <li class="phone"> Phone: (237) 33 40 53 50</li> 
         <li class="mobile"> Email: [email protected]/[email protected]</li> 
         <li class="email"> Web: Auto22.com</li> 
        </ul> 
       </div> 
       <div class="span3 twitter"> 
        <h2> Temoignages </h2> 
        <div class="flexslider" id="testimonialsidebar"> 
         <ul class="slides"> 
          <li ng-repeat="temoignage in Temoignages">{{temoignage.content}} <br> 
           <span class="pull-right orange">By : {{temoignage.nameby}}</span> </li> 

         </ul> 
        </div> 
       </div> 
       <div class="span3 facebook"> 
        <h2> Newsletter </h2> 
        <section id="newslettersignup"> 
         <div class="pull-left mt20"> 
          <form class="form-horizontal"> 
           <div class="input-prepend"> 
            <input type="text" placeholder="votre mail ici" id="inputIcon" class="span2"> 
            <input value="Souscrire" class="btn btn-orange" type="submit"> 
            Envoyer </div> 
          </form> 
         </div> 
        </section> 

       </div> 
      </div> 
     </div> 
    </section> 
    <section class="copyrightbottom"> 
     <div class="container"> 
      <div class="row"> 
       <div class="span5 social"> 
        <ul> 
         <li><a href="#"><i class="icon-facebook"></i></a></li> 
         <li><a href="#"><i class="icon-twitter"></i></a></li> 
        </ul> 
       </div> 
       <div class="span2 textcenter"> Auto22 @ 2017 powered by Njangihost </div> 
      </div> 
     </div> 
    </section> 
    <a id="gotop" href="#">Back to top</a> 
</footer> 

<script type="text/javascript" language="javascript"> 
    $(function() { 
     $('#categorymenu').stickThis(); 
    }); 
</script> 

Und hier ist der Controller und der Service:

'use strict'; 
angular.module('Auto22', ['ngRoute', 'ui.bootstrap']) 
.config(function($routeProvider){ 
    $routeProvider 
    .when('/welcome', { 
    templateUrl : 'views/welcome.html', 
    controller: 'welcomeCtrl' 
    }) 
    .when('/catalogue/:name/:subname', { 
    templateUrl : 'views/catalogue.html', 
    controller: 'catalogueCtrl' 
    }) 
    .when('/services/:servicename', { 
    templateUrl : 'views/services.html', 
    controller: 'servicesCtrl' 
    }) 
    .when('/nosservices', { 
    templateUrl : 'views/nosServices.html', 
    controller: 'nosservicesCtrl' 
    }) 
    .when('/produit/:idproduct', { 
    templateUrl: 'views/produit.html', 
    controller: 'produitCtrl' 
    }) 
    .when('/devis/:servicename', { 
    templateUrl: 'views/devis.html', 
    controller: 'devisCtrl' 
    }) 
    .when('/contact', { 
    templateUrl: 'views/contact.html', 
    controller: 'contactCtrl' 
    }) 
    .when('/promotion', { 
    templateUrl : 'views/promotion.html', 
    controller: 'promotionCtrl' 
    }) 
    .when('/resultats/:produit', { 
    templateUrl : 'views/resultats.html', 
    controller: 'resultatsCtrl' 
    }) 
    .otherwise({ 
     redirectTo: '/welcome' 
    }); 
}) 
.config(function($sceProvider) { 
    $sceProvider.enabled(false); 
}) 
.controller('devisCtrl', function($scope, $uibModal, cathegorie, devis, temoignages, subCathegorie, $rootScope, services, $routeParams){ 
    document.title="Devis"; 
    $scope.menActive1=""; 
    $scope.menActive2=""; 
    $scope.menActive3=""; 
    $scope.menActive4="active"; 
    $scope.menActive5=""; 
    $scope.loader1=true; 
    $rootScope.apiAddress2="http://www.auto22industry.com/auto22new/manager/web/api/corporate"; 
    $rootScope.apiAddress="http://www.auto22industry.com/auto22new/manager/web/api/catalog"; 
    $rootScope.apiAddress3="http://www.auto22industry.com/auto22new/manager/web/api"; 
    $scope.choosen={}; 
    services.listservices().then(function(allServices){ 
    $scope.Accservices=[]; 
    $scope.Accservices=allServices.data; 
    for(var i=0; i<=$scope.Accservices.length; i++){ 
     if($routeParams.servicename==$scope.Accservices[i].id){ 
     $scope.choosen=$scope.Accservices[i]; 
     break; 
     }; 
    }; 
    console.log($scope.choosen.name); 
    }); 

    /*List all the cathegories and their subcathegories*/ 
    subCathegorie.listSubCathegorie().then(function(subcathegories){ 
    $scope.Acccathegories=[]; 
    if(subcathegories.data){$scope.loader1=false;} 
    $scope.Acccathegories=subcathegories.data; 
    console.log($scope.Acccathegories); 
    }); 
    $scope.messages={}; 

    $scope.askDevis = function(Devis){ 
    console.log("In the ask devis function"); 
    /*for(var monService in $scope.Accservices){ 
     console.log("In the for loop"); 
     console.log(Devis.service); 
     console.log(Devis.nom); 
     console.log($scope.Accservices[monService].name); 
     if(Devis.service == $scope.Accservices[monService].name){ 
     $scope.askedService = $scope.Accservices[monService]; 
     console.log($scope.askedService); 
     break; 
     }; 
    };*/ 

    devis.sendDevisRequest(Devis.nom, Devis.email, Devis.telephone, Devis.objet, Devis.service, Devis.message).then(function(validation){ 
     $scope.messages=validation; 
     console.log($scope.messages); 
    }); 

    if($scope.messages){ 
     console.log('opening pop up'); 
     var $uibModalInstance = $uibModal.open({ 
     templateUrl: 'Popup.html', 
     controller: 'PopupCont' 
     }); 
    }else{ 
     console.log('opening pop up'); 
     var $uibModalInstance = $uibModal.open({ 
     templateUrl: 'PopupErr.html', 
     controller: 'PopupCont' 
     }); 
    } 
    }; 

    temoignages.listalltemoignages().then(function(allTemoignages){ 
    $scope.Temoignages=[]; 
    $scope.Temoignages=allTemoignages.data.data; 
    }); 

}) 
.controller('PopupCont', function($scope, $uibModalInstance){ 
    $scope.close = function() { 
    $uibModalInstance.dismiss(''); 
    }; 
}) 
.service('devis', function($http, $rootScope){ 
    var validation={}; 

    this.sendDevisRequest = function(nom, email, telephone, objet, service, description) { 
    var req = { 
     method: 'POST', 
     url: $rootScope.apiAddress + '/devis/create', 
     data: { 
     "name": nom, 
     "email": email, 
     "phone": telephone, 
     "object": objet, 
     "service": service, 
     "description": description 
     } 
    } 

    return $http(req).then(function(response){ 
     validation=response; 
    }); 
    } 
}); 

Antwort

0

im Dienst nur die http zurückkehren, anstatt die zu fangen Versprechen.Catch it in der Steuerung.

.service('devis', function($http, $rootScope){ 
    var validation={}; 

    this.sendDevisRequest = function(nom, email, telephone, objet, service, description) { 
    var req = { 
method: 'POST', 
url: $rootScope.apiAddress + '/devis/create', 
data: { 
    "name": nom, 
    "email": email, 
    "phone": telephone, 
    "object": objet, 
    "service": service, 
    "description": description 
    } 
} 
    return $http(req) 
    } 
}); 

auch Daten stammen unter data Eigenschaft in dem Versprechen

devis.sendDevisRequest(Devis.nom, Devis.email, Devis.telephone, Devis.objet, Devis.service, Devis.message).then(function(validation){ 

    $scope.messages=validation.data; // data property 
    console.log($scope.messages); 

}) 
+0

ich Ihre Lösung angewendet haben, aber nicht scheint nicht zu funktionieren – Paty

Verwandte Themen