Google Apps脚本UrlFetchApp和Ajax数据

时间:2018-02-15 05:40:58

标签: ajax google-apps-script urlfetch

我正在尝试在Google Apps脚本中获取登录后的数据。我的下面的代码可以正常工作并提取登录和数据页面(登录后),没有问题。

function fetch() {
  var loginurl = "https://somedomain.com/login";
  var dataurl = "https://somedomain.com/orders#status=0&p=1&per=100";
  var params = {
    "method": "post",
    "payload": {
      "UserName": "myusername",
      "Password": "mypassword",
      "action": "Log In",
      "testcookie": 1
    },
    "followRedirects": false
  };

  var response = UrlFetchApp.fetch(loginurl, params);

  if (response.getResponseCode() == 302) {
    var headers = response.getAllHeaders();
    var cookies = typeof headers['Set-Cookie'] == 'string' ? [ headers['Set-Cookie'] ] : headers['Set-Cookie'];
    for (var i = 0; i < cookies.length; i++) {
      cookies[i] = cookies[i].split(';')[0];
    };
    params = {"method": "get","headers": {"Cookie": cookies.join(';')}};
    response = UrlFetchApp.fetch(dataurl, params);
    Logger.log(response.getContentText());
  } else {
    Logger.log(getResponseCode());
  }
}

我的问题是数据页面的获取响应不包括我需要的实际数据,因为当回复响应时网站(ajax)没有完全加载。我甚至可以看到“ajaxLoading”div在响应的ContentText中可见。

对此有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

解决:我上面示例中的dataurl正在使用我的参数并发布到一个完全不同的URL,我能够直接调用该URL来获取我之后的数据。