【问题标题】:Using a variable inside of an http request在 http 请求中使用变量
【发布时间】:2014-07-11 19:57:39
【问题描述】:

我正在使用 Parse 创建一个 httpRequest,我想做的是让请求的一个方面采用 locationSearch 变量的值。当我尝试如下所示执行此操作时,我收到一条错误消息:

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
        })());
      }

【问题讨论】:

    标签: javascript parse-platform httprequest


    【解决方案1】:

    问题是前面的那一行 (locationSearch,)

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

    这是无效的语法。它必须是这样的:

    'locationSearch': locationSearch,
    

    或该属性/字段的适当名称。

    此外,在以下行中,删除尾随逗号 (','),因为这是另一个语法错误。

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

    【讨论】:

      猜你喜欢
      • 2019-07-26
      • 1970-01-01
      • 1970-01-01
      • 2017-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多