2016-09-03 25 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

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