2014-07-11 3 views
0

저는 Parse를 사용하여 httpRequest를 만들고 있습니다. 요청의 한 측면은 locationSearch 변수의 값을 가져야합니다.http 요청의 내부 변수 사용

Deploy failed with error:Uncaught SyntaxError: Unexpected token : in main.js:322

이 은 이것이다 참조하는

라인 (322) :

'keywords' : results[i].get('searchTerm'),

locationSearch를 삽입하는 것을 의미 아래와 같이 나는이 작업을 수행 할 때, 나는이 다음과 같은 내용의 오류를 얻을 수 키 - 값 쌍을 기대하기 때문에 그 라인 바로 전에 그것을 버리고 있습니다. locationSearch 변수는 두 가지 가능한 키 - 값 쌍 중 하나이므로 요청을 형식화하는 방법을 알지 못합니다.

나는 어떤 종류의 if 문을 사용하는 것으로 생각했지만, 요청을 내 보내지 않는 방식으로 구문을 형식화하는 방법을 모르겠습니다. 내가 이것을 할 수있는 방법이 있습니까?

코드 :

for (i=0; i<results.length; i++) { 

     // ... later in your loop where you populate promises: 
     var searchTerm = results[i].get('searchTerm'); 
     // add it to the array just like you add the promises: 
     searchTerms.push(searchTerm); 

     url = 'http://svcs.ebay.com/services/search/FindingService/v1'; 
     //push function containing criteria for every matchCenterItem into promises array 
     promises.push((function() { 

      locationSearch = results[i].get('itemLocation') 

      var httpRequestPromise = Parse.Cloud.httpRequest({ 
      url: url, 
      params: { 
       'OPERATION-NAME' : 'findItemsByKeywords', 
       'SERVICE-VERSION' : '1.12.0', 
       'SECURITY-APPNAME' : '*APP ID GOES HERE*', 
       'GLOBAL-ID' : 'EBAY-US', 
       'RESPONSE-DATA-FORMAT' : 'JSON', 
       'REST-PAYLOAD&sortOrder' : 'BestMatch', 
       'paginationInput.entriesPerPage' : '3', 
       'outputSelector=AspectHistogram&itemFilter(0).name=Condition&itemFilter(0).value(0)' : 'New', 
       'itemFilter(0).value(1)' : results[i].get('itemCondition'), 
       'itemFilter(1).name=MaxPrice&itemFilter(1).value' : results[i].get('maxPrice'), 
       'itemFilter(1).paramName=Currency&itemFilter(1).paramValue' : 'USD', 
       'itemFilter(2).name=MinPrice&itemFilter(2).value' : results[i].get('minPrice'), 
       'itemFilter(2).paramName=Currency&itemFilter(2).paramValue' : 'USD', 
       locationSearch, 
       'keywords' : results[i].get('searchTerm'), 
      } 
      }); 
      return httpRequestPromise 
     })()); 
     } 

답변

3

문제 (locationSearch,)

'itemFilter(2).paramName=Currency&itemFilter(2).paramValue' : 'USD', 
locationSearch, 
'keywords' : results[i].get('searchTerm'), 

이 유효하지 구문 전에 라인이다. 다음과 같아야합니다 :

'locationSearch': locationSearch, 

또는 그 속성/필드에 대한 적절한 이름이어야합니다.

또한 다음 줄에 다른 구문 오류가 있으므로 후행 쉼표 (',')를 제거하십시오.

'keywords' : results[i].get('searchTerm'),