2016-09-03 18 views
0

Привет Я начинающий программист, и я пытаюсь найти элементы из Ebay, используя определенные ключевые слова, используя их API поиска в моем гибридном мобильном приложении с использованием Javascript. Я следовал this really clear guide, но я не получаю ничего, чтобы появиться в моем div. Я также попытался запустить точный код на веб-сайте, но все равно никаких результатов. Я также приобрел и ввел правильное производственное приложение в поле.Нужна помощь после 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 равно null. Большинство кодов из учебника, и я понятия не имею, почему я не получаю одинаковых результатов.

ответ

1

В коде построения URL urlFilter не определяется из-за последовательного характера интерпретатора; присваивания не поднимаются, т. е. простыми словами вы не можете использовать свою будущую ценность в настоящем. поэтому просто отредактируйте код, начинающийся с var URL = ... (1-я строка) до document.body.appendChild (s); и вставьте его в конец (после buildURLArray (filterarray);) внутри вашего тега скрипта. Теперь urlFilter получит некоторое значение и после этого будет использоваться в построении URL.

+0

Эй, спасибо огромное! это сработало !! :-) –

 Смежные вопросы

  • Нет связанных вопросов^_^