2016-09-03 29 views
0

您好我是一個初學編程的尋找項目,而我試圖找到使用使用他們的發現將API使用Javascript我的混合移動應用特定的關鍵字從易趣物品。我跟着this really clear guide,但我沒有得到任何東西出現在我的結果div。我也嘗試在網站上運行確切的代碼,但仍然沒有結果。我也獲得並在現場輸入了正確的生產appID。需要幫助下的eBay API通過關鍵字

這裏是代碼:

<script>      
         var url = "http://svcs.ebay.com/services/search/FindingService/v1"; 
         url += "?OPERATION-NAME=findItemsByKeywords"; 
         url += "&SERVICE-VERSION=1.0.0"; 
         url += "&SECURITY-APPNAME=sample-sample-PRD-89a6113e8-f7a52044"; 
         url += "&GLOBAL-ID=EBAY-US"; 
         url += "&RESPONSE-DATA-FORMAT=JSON"; 
         url += "&callback=_cb_findItemsByKeywords"; 
         url += "&REST-PAYLOAD"; 
         url += "&keywords=harry%20potter"; 
         url += "&paginationInput.entriesPerPage=3"; 
         url += urlfilter; 
         alert(url); 
         // Submit the request 
         s=document.createElement('script'); // create script element 
         s.src= url; 

// Error received on the line below, "uncaught typeerror: cannot call method 'appendChild' of null" 
         document.body.appendChild(s); 

         function _cb_findItemsByKeywords(root) { 
          var items = root.findItemsByKeywordsResponse[0].searchResult[0].item || []; 
           var html = []; 
           html.push('<table width="100%" border="0" cellspacing="0" cellpadding="3"><tbody>'); 
           for (var i = 0; i < items.length; ++i) { 
           var item  = items[i]; 
           var title = item.title; 
           var pic  = item.galleryURL; 
           var viewitem = item.viewItemURL; 
           if (null != title && null != viewitem) { 
            html.push('<tr><td>' + '<img src="' + pic + '" border="0">' + '</td>' + 
            '<td><a href="' + viewitem + '" target="_blank">' + title + '</a></td></tr>'); 
           } 
           } 
           html.push('</tbody></table>'); 
           document.getElementById("results").innerHTML = html.join(""); 
         } // End _cb_findItemsByKeywords() function 

        // Create a JavaScript array of the item filters you want to use in your request 
        var filterarray = [ 
          {"name":"MaxPrice", 
          "value":"25", 
          "paramName":"Currency", 
          "paramValue":"USD"}, 
          {"name":"FreeShippingOnly", 
          "value":"true", 
          "paramName":"", 
          "paramValue":""}, 
          {"name":"ListingType", 
          "value":["AuctionWithBIN", "FixedPrice"], 
          "paramName":"", 
          "paramValue":""}, 
          ]; 

        // Define global variable for the URL filter 
        var urlfilter = ""; 

        // Generates an indexed URL snippet from the array of item filters 
        function buildURLArray() { 
         alert("buildURLArray working"); 
         // Iterate through each filter in the array 
         for(var i=0; i<filterarray.length; i++) { 
         //Index each item filter in filterarray 
         var itemfilter = filterarray[i]; 
         // Iterate through each parameter in each item filter 
         for(var index in itemfilter) { 
          // Check to see if the paramter has a value (some don't) 
          if (itemfilter[index] !== "") { 
          if (itemfilter[index] instanceof Array) { 
           for(var r=0; r<itemfilter[index].length; r++) { 
           var value = itemfilter[index][r]; 
           urlfilter += "&itemFilter\(" + i + "\)." + index + "\(" + r + "\)=" + value ; 
           } 
          } 
          else { 
           urlfilter += "&itemFilter\(" + i + "\)." + index + "=" + itemfilter[index]; 
          } 
          } 
         } 
         } 
        } // End buildURLArray() function 

        // Execute the function to build the URL filter 
        buildURLArray(filterarray); 

        </script> 

HTML:

<h1>eBay Search Results</h1> 

        <div id="results"></div> 

有兩個警報,警報(URL)返回除了urlfilter被「undefined'and警報一切( 「buildURLArray工作」 );沒有出現。 Eclipse爲行document.body.appendChild(s);;返回錯誤提示s爲空。大部分代碼來自教程,我不知道爲什麼我沒有得到相同的結果。

回答

1

在URL構造代碼,urlFilter不因爲解釋器的連續性質定義;任務不會被懸掛,即用簡單的話來說,你不能在現在使用它的未來價值。所以只需從var URL = ...(第一行)開始直到document.body.appendChild(s);並將其粘貼到腳本標記的末尾(buildURLArray(filterarray);)之後。現在,urlFilter將獲得一些值,之後將用於URL構建。

+0

嘿非常感謝!有效 !! :-) –