【问题标题】:Consuming JSONP in Google Apps Script在 Google Apps 脚本中使用 JSONP
【发布时间】:2015-01-22 15:16:07
【问题描述】:

我想在我的 Google Apps 脚本中使用以下网址: http://a0.awsstatic.com/pricing/1/emr/pricing-mapr.min.js

使用典型的response = UrlFetchApp.fetch(url).getContentText() 并没有真正起作用,它只是返回由callback() 包围的JSON。有没有办法通过 Google Apps 脚本使用 JSONP?

代码:

function myFunction() {
  getEmrPricingData_();

}

/*
 * Get EMR Prices
 *
 */
function getEmrPricingData_() {
  var emr_url = "http://a0.awsstatic.com/pricing/1/emr/pricing-mapr.min.js"
  var response = UrlFetchApp.fetch(emr_url).getContentText();
  Logger.log(response);
}

【问题讨论】:

    标签: json google-apps-script jsonp


    【解决方案1】:

    您需要在代码中定义函数 callback(),并 eval() 您的 JSONP 响应以执行该函数。例如,为了处理我的一个项目的 JSONP 响应,我创建了这个函数:

    function callback(data){
        return data;
    }
    

    在我的请求函数中:

    var result = eval(UrlFetchApp.fetch(url + uri, options).getContentText());
    

    【讨论】:

    • 如果出于安全考虑,宁愿将数据提取为正则表达式匹配,而不是使用 eval。这取决于你对 eval 有多邪恶的看法。
    猜你喜欢
    • 1970-01-01
    • 2021-07-02
    • 2017-08-28
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多