2016-12-03 116 views
-2

易趣購物API AngularJS意外錯誤

angular.module('BeautyCare', ['ionic']) 
 
    
 
.config(function($stateProvider, $urlRouterProvider) { 
 

 
    $stateProvider 
 
    .state('tabs', { 
 
     url: "/tab", 
 
     abstract: true, 
 
     templateUrl: "templates/tabs.html" 
 
    }) 
 
    .state('tabs.Store', { 
 
     url: "/Store", 
 
     views: { 
 
     'Store-tab': { 
 
      templateUrl: "templates/Store.html", 
 
      controller: 'StoreTabCtrl' 
 
     } 
 
     } 
 
    }) 
 
    
 
    .state('tabs.SalonGalary', { 
 
     url: "/SalonGalary", 
 
     views: { 
 
     'SalonGalary-tab': { 
 
      templateUrl: "templates/SalonGalary.html", 
 
      controller :'SalonGalaryCtrl' 
 
     } 
 
     } 
 
    }) 
 
    
 
    .state('tabs.Profile', { 
 
     url: "/Profile", 
 
     views: { 
 
     'Profile-tab': { 
 
      templateUrl: "templates/Profile.html" 
 
     } 
 
     } 
 
    }) 
 

 
    .state('tabs.Alerts', { 
 
     url: "/Alerts", 
 
     views: { 
 
     'Alerts-tab': { 
 
      templateUrl: "templates/Alerts.html" 
 
     } 
 
     } 
 
     }); 
 

 
    $urlRouterProvider.otherwise("/tab/Store"); 
 

 
}); 
 

 

 
.controller('StoreTabCtrl', function($scope,$http,$log) { 
 
    var items =null; 
 
    $log.debug('start debug'); 
 
    var url="http://open.api.ebay.com/shopping?GLOBAL-ID=EBAY-IN&QueryKeywords=Iphone&ResponseEncodingType=JSON"; 
 
    url+="&appid=API_ID&callback=JSON_CALLBACK._0"; 
 
    url+="&callname=FindPopularItems&version=713?callback=JSON_CALLBACK"; 
 
    $log.debug($http.jsonp(url) 
 
      .success(function(data) { 
 
      items=data; 
 
      console.log(items); 
 
      }) 
 
      .error(function(data) { 
 
       //alert("ERROR"); 
 
      }));   
 
});
<html > 
 
    <head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
 
    
 
    <title>Beauty Care</title> 
 
    <!-- MyBeauty , BeautyCare,BeautyEye,BeautyShop,BeautySalon !--> 
 

 
    <link href="lib/ionic/css/ionic.css" rel="stylesheet"> 
 
    <script src="lib/ionic/js/ionic.bundle.js"></script> 
 
    <script src="js/app.js"></script> 
 
    <script src="js/Service.js"></script> 
 
    <script src="js/Controllers.js"></script> 
 
    <!-- <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBLSOMXsw_sxOlRpyBj16g5iaewLHDpSes&libraries=places"></script> 
 
--> 
 
    </head> 
 

 
    <body ng-app="BeautyCare"> 
 
    
 
    <ion-nav-bar class="bar-positive"> 
 
     <ion-nav-back-button> 
 
     </ion-nav-back-button> 
 
    </ion-nav-bar> 
 
       
 
    <ion-nav-view></ion-nav-view> 
 

 

 
    <script id="templates/tabs.html" type="text/ng-template"> 
 
     <ion-tabs class="tabs-icon-top tabs-positive"> 
 

 
     <ion-tab title="" icon="ion-ios-cart" href="#/tab/Store"> 
 
      <ion-nav-view name="Store-tab"></ion-nav-view> 
 
     </ion-tab> 
 

 
     <ion-tab title="" icon="ion-navicon-round" href="#/tab/SalonGalary"> 
 
      <ion-nav-view name="SalonGalary-tab"></ion-nav-view> 
 
     </ion-tab> 
 

 
     <ion-tab title="" icon="ion-android-person" ui-sref="tabs.Profile"> 
 
      <ion-nav-view name="Profile-tab"></ion-nav-view> 
 
     </ion-tab> 
 

 
     <ion-tab title="" icon="ion-ios-bell" ui-sref="tabs.Alerts"> 
 
      <ion-nav-view name="Alerts-tab"></ion-nav-view> 
 
     </ion-tab> 
 
     </ion-tabs> 
 
    </script> 
 

 
    <script id="templates/Store.html" type="text/ng-template"> 
 
     <ion-view view-title="BeautyCare Store" cache-view="false"> 
 
     <ion-content class="padding" > 
 
     <ion-list> 
 
     <ion-item class="item-icon-right" ng-repeat="item in items"> 
 
      <h1>{{item.TimeStamp }}</h1> 
 
      <!--<p>{{ item.title}}</p> !--> 
 
      <i class="icon ion-chevron-left icon-accessory"></i> 
 
      <ion-option-button class="button-positive" ng-click="viewFriend(viewFriend(data.idfriends))">View Friend</ion-option-button> 
 
      <ion-option-button class="button-assertive" ng-click="deleteFriend(remove(data.idfriends))">Delete</ion-option-button> 
 
     </ion-item> 
 
    </ion-list> 
 
     </ion-content> 
 
     </ion-view> 
 
    </script> 
 

 
    
 
    
 
    <script id="templates/SalonGalary.html" type="text/ng-template"> 
 
     <ion-view view-title="BeautyCare Salon Galary" cache-view="false"> 
 
     <ion-content class="padding"> 
 
      
 
     </ion-content> 
 
     </ion-view> 
 
    </script> 
 

 
    
 
    <script id="templates/Profile.html" type="text/ng-template"> 
 
     <ion-view title="My Profile" cache-view="false"> 
 
     <ion-content> 
 
      
 
     </ion-content> 
 
     </ion-view> 
 
    </script> 
 

 
    <script id="templates/Alerts.html" type="text/ng-template"> 
 
     <ion-view view-title="My Alerts" cache-view="false"> 
 
     <ion-content class="padding"> 
 
      
 
     </ion-content> 
 
     </ion-view> 
 
    </script> 
 

 

 
    </body> 
 
</html> 
 
    
 
    
 

 
</body> 
 
</html>

我試圖用$ http.get沒有運氣,代碼顯示意外的錯誤。 我感謝任何幫助解決這個問題或解決方法使用$ http.get。我嘗試了不同的例子,但仍然沒有解決問題。在此先感謝

+0

如果您只發布代碼和錯誤圖片,沒有人會幫助您解決問題,特別是如果兩幅圖片都不顯示完整詳細信息,則不會提供幫助。將代碼的文本與錯誤消息的完整文本一起復制到您的問題中。 –

+0

謝謝盧克,我將編輯併發布代碼 –

+1

我要求您在問題中也包含錯誤消息的文本。請修改您的問題以包含該問題。 –

回答

0

讓我們來看看您正試圖發送到eBay的API的URL仔細一看:

http://open.api.ebay.com/shopping?GLOBAL-ID=EBAY-IN&QueryKeywords=Iphone& 
    ResponseEncodingType=JSON&appid=Mawsem77f-2832-4be9-93d8-e257a245be3& 
    callback=JSON_CALLBACK._0&callname=FindPopularItems&version=713?callback=JSON_CALLBACK 

我數三個問題是:

  • version參數有無效值:713?callback=JSON_CALLBACK。此參數似乎需要數字值。請注意,這部分URL已經在查詢字符串中,因此這裏的?不會被解釋爲查詢字符串的開始或作爲參數分隔符。

  • 如果在URL末尾的callback=JSON_CALLBACK應該是另一個URL參數名稱和值,那麼您已指定callback參數具有兩個不同的值。您只需要指定一次該參數,並且還需要確定要使用哪個值。

  • 當你正在你需要指定包返回的JSON在一個函數的名稱JSONP request。但是,根據eBay API documentation,您使用的回調函數的名稱錯誤的參數。如果參數callback的值爲true,則將響應調用到名爲_cb_FindPopularItems的函數中。該參數的其他值似乎被忽略。您似乎想要使用callbackname參數。因此,請嘗試從您的網址中移除callback參數,並添加callbackname=JSON_CALLBACKcallbackname=JSON_CALLBACK._0(目前尚不清楚您打算在此處選擇哪一個)。

    這也解釋了語法錯誤:對JSONP請求的響應被認爲是可執行的JavaScript,但您得到的響應實際上是一些JSON數據。

我沒有測試過這個,但我希望下面的URL(包裝爲可讀性)工作。您可能需要將._0後綴添加到回調名稱:

http://open.api.ebay.com/shopping?GLOBAL-ID=EBAY-IN&QueryKeywords=Iphone& 
    ResponseEncodingType=JSON&appid=Mawsem77f-2832-4be9-93d8-e257a245be3& 
    callbackname=JSON_CALLBACK&callname=FindPopularItems&version=713 

最後,請考慮改變您的eBay應用程序ID。您現在已將其發佈到公共互聯網上,任何查看此問題的人現在都可以使用它。我以前從未使用過eBay或其API,所以我會讓你知道如何做到這一點。

+0

非常感謝盧克,我要測試併發布更新,非常感謝。 –

+0

問題解決了,我有一個URL的問題,現在我需要去返回的ItemArray。非常感謝盧克 –