2016-02-17 27 views
1

Our problem with angular and backend我嘗試後數據使用AngularJS

你好,感謝你讀這篇文章,我有再次角的問題......這個問題很複雜,我在谷歌搜索,並在這個論壇但直到現在還沒有答案解決我的問題,所以這裏是問題所在。

我正在運行一個本地主機,我們的目標是當用戶點擊「tambahkan」時(如果你能看到上面的圖像),那麼黃色按鈕「lanjutkan」上面的空白字段出現的東西列表用戶「tambahkan」通過綠色按鈕(我希望每個人都瞭解流程)

問題是,不知何故,我很困惑如何定義項目列表中的數據,所以我可以把它扔到上面的字段「 lanjutkan「,任何人都可以幫助我?

這裏是代碼:

的Index.html(僅適用於田間地頭,代碼太長,我認爲沒有必要在這裏顯示所有)

<div class="container-customscroll"> 
            <div class="content mCustomScrollbar"> 
             <div class="itemcheck" ng-repeat="item in dataItem.stores | regex:'name':alfabet | orderBy: 'name' | filter: searchItem"> 
              <div class="left" ng-if="item.preparation == ''" ng-model="name"><i class="fa fa-circle silver"></i>{{item.name}}</div> 
         <div class="left" ng-if="item.preparation == '1'" ng-model="name"><i class="fa fa-circle green"></i>{{item.name}}</div> 
         <div class="left" ng-if="item.preparation == '2'" ng-model="name"><i class="fa fa-circle yellow"></i>{{item.name}}</div> 
         <div class="left" ng-if="item.preparation == '3'" ng-model="name"><i class="fa fa-circle pink"></i>{{item.name}}</div> 
              <div class="right" ng-click="addToCart()"><a>+ Tambahkan</a> </div> 
             </div> 
            </div><!-- /mCustomScrollbar --> 
           </div><!-- /container-customscroll --> 

<div class="col-md-4"> 
       <div class="container-sidebaryellow"> 
        <div class="title">Pemeriksaan Ditambahkan</div> 
        <div class="container-customscroll"> 
         <div class="content mCustomScrollbar"> 
          <div class="item-tambahan "> 
           <div class="item checkuptambahan" ng-repeat="cart in tambahCart"> 
            <i class="fa fa-circle pink">{{cart.name}}</i> 
            <a class="checkuptambahan">x</a> 
           </div> 
          </div> 
         </div><!-- /content --> 
        </div><!-- /container-customscroll --> 
        <a href="#" class="btn btnyellow">Lanjutkan</a> 
       </div> 
      </div> 

這裏是角碼:

var app = angular.module('pesanlab', []); 
app.controller('pesanlabCtrl', function($scope,$http){ 
    //variabel awal 
    $scope.showMe = false; 
    $scope.myFunc = function() { 
     $scope.showMe = !$scope.showMe; 
    } 


    $scope.aksi = "tambah"; 

    //code untuk mengeluarkan data dari data/item.json 
    $scope.dapatkanItem = function(){ 
    $http.get('/someurl').success(function(data){ 
     $scope.dataItem = data; 
    }); 
    } 

    $scope.dapatkanItem(); 

    $scope.dapatkanPanel = function(){ 
    $http.get('/someurl').success(function(data){ 
     $scope.dataPanel = data; 
    }); 
    } 

    $scope.dapatkanPanel(); 

    $scope.dapatkanPaket = function(){ 
     $http.get('/someurl').success(function(data){ 
      $scope.dataPaket = data; 
     }); 
    } 

    $scope.dapatkanPaket(); 

    $scope.addToCart = function(){ 
     $http({ 
      method: 'POST', 
      url: '/someurl', 
      headers: { 
      "Access-Control-Allow-Origin" : "*", 
      "Access-Control-Allow-Methods" : "GET,POST,PUT,DELETE,OPTIONS", 
      "Access-Control-Allow-Headers": "Content-Type, Authorization, X-Requested-With" 
      }, 
      data: { 
      // master_code: $scope.name, 
      name: $scope.item 
      } 
     }).success(function(data, status, headers, config){ 
      $scope.tambahkan = data; 
     }); 
     console.log($scope.item) 
    } 

    $scope.tambahkanCart = function(){ 
     $http.get('/someurl').success(function(data, status, headers, config){ 
      $scope.tambahCart = data; 
     }); 
    } 

    $scope.tambahkanCart(); 
    }); 

    app.filter('regex', function() { 
      return function(input, field, regex) { 
       var patt = new RegExp(regex); 
       var out = []; 

       if(input === undefined){ 
        return out; 
       } 
       for (var i = 0; i < input.length; i++){ 
        if(patt.test(input[i][field])) 
         out.push(input[i]); 
       } 
      return out; 
      }; 
    }); 

當的console.log可以正常工作,則返回爲「未定義」,也是我們基於使用網站API(我不知道它叫什麼),並返回這樣,我們使用laravel 5.2作爲後端

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://dev.pesanlab.com/api/v1/order/cart/add. (Reason: missing token 'access-control-allow-headers' in CORS header 'Access-Control-Allow-Headers' from CORS preflight channel). 

任何人都可以幫我嗎?謝謝你這麼多

@ravi,這裏是代碼,我覺得評論是不規範的地方:

$scope.tambahItem = function(){ 
     $scope.data = $scope.dataItem.stores; 
     $scope.temp = angular.fromJson($scope.data); 
     alert($scope.temp.name); 
}; 

這個代碼返回「未定義」,你知道如何解決這一問題?如果我從Json獲取數據,它也返回對象

回答

0

CORS應該在接受請求的服務器上啓用。你的服務器應該說我接受來自未知/跨域的地方的api請求。

我建議你檢查一下。

順便說一句,如果您可以一般地表達您的問題,因爲這可能違反了您可能正在處理的組織的版權政策,所以無需附加圖片。

+0

嗨,謝謝你的回答,我已經與後端討論過,他們說我們可以使用CORS進行「GET」,但對於「POST」仍然不行,你有什麼想法嗎?噢,我的代碼如何?有什麼問題嗎?當我想要使用ng-click獲取數據時,我仍然遇到困難...謝謝BTW,感謝您的建議......我會記住這一點 –

+0

進行POST時,瀏覽器發送HTTP OPTION,然後發送POST。所以你需要啓用CORS for OPTION和POST來執行POST。 請檢查會做。你可以在瀏覽器開發工具的網絡選項卡中檢查其中的失敗,我敢打賭,你的OPTION xhr失敗了。這將幫助我確信 –

+0

嗯...我檢查後,我認爲我的xhr服務器狀態是200,所以我認爲它的工作,哦,另一件事,如果我可能會問...你知道代碼獲取來自方法post的數據?我使用這個代碼$ scope.data = $ scope.dataItem.stores; $ scope.temp = angular.fromJson($ scope.data); 警報($ scope.temp。名稱);但返回undefined –