2016-09-03 2 views
0

안녕하세요 저는 초보자 프로그래머입니다. Javascript를 사용하여 하이브리드 모바일 응용 프로그램에 Finding API를 사용하여 특정 키워드를 사용하여 이베이에서 항목을 찾으려고합니다. 나는 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 : 두 개의 경고, 경고 (URL)를 urlfilter는 'undefined'and 경고 것을 제외한 모든 것을이 반환됩니다

<h1>eBay Search Results</h1> 

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

("buildURLArray 작업"); 나타나지 않았다. Eclipse가 document.body.appendChild (s) 행에 대해 오류를 반환했으며 s이 null임을 제안했습니다. 코드의 대부분은 튜토리얼에서 나온 것이고 나는 왜 내가 같은 결과를 얻지 못하고 있는지 전혀 모른다.

답변

1

URL 구성 코드에서 통역사의 순차적 특성 때문에 urlFilter가 정의되지 않았습니다. 과제물이 올라가지 않습니다. 즉, 현재의 미래 가치를 사용할 수없는 단순한 단어입니다. 그래서 var URL = ... (첫 번째 줄)부터 document.body.appendChild (s)까지 코드를 자른다. (buildURLArray (filterarray);) 후 끝 부분에 붙여 넣습니다. 이제 urlFilter는 값을 가져오고 그 후 URL 생성에 사용됩니다.

+0

안녕하십니까? 그것은 일했다! :-) –