我正在根据Google表格中定义的位置在Google地图上绘制一些标记。
对于一个Google表格,我会绘制标记,但如果我复制此表格并启动我的网页,我会收到此消息错误:
拒绝执行“https://script.google.com/a/macros/MYDOMAIN/s/My-Script-ID/exec?Jsonp=callback”脚本,因为其MIME类型(“text / HTML”)不可执行,并且启用了严格的MIME类型检查。
这是我的HTML页面,其中包含一些JavaScript代码。
//.. my html code
<script type=application/javascript>
var DATA_SERVICE_URL ="https://script.google.com/a/macros/MYDOMAIN/s/MYSCRIPTID/exec?jsonp=callback"; // THIS ONE WORKS
//var DATA_SERVICE_URL_COPY = "https://script.google.com/a/macros/MYDOMAIN/s/MYSCRIPTID/exec?jsonp=callback"; // **THIS ONE IS NOT WORKING** (it is linked to the copy of my working google sheet above)
//....
var scriptElement = document.createElement('script');
scriptElement.src = DATA_SERVICE_URL;
document.body.appendChild(scriptElement);
document.getElementsByTagName('head')[0].appendChild(scriptElement);
function callback(data) {
alert("Here am I");
//.. Plotting markers on map
}
</script>
当我使用DATA_SERVICE_URL_COPY而不是DATA_SERVICE_URL时,我收到了消息错误。但是Google Sheet都发布了相同的选项。
以下是我在两张Google表格中使用的Google Apps脚本。
var SPREADSHEET_ID = 'MY SPREADSHEET ID';
var SHEET_NAME = 'MAP';
//------------------------------------------------------------------------------
function doGet(request){
var callback = request.parameters.jsonp;
var range = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME).getDataRange();
var json = callback + '(' + Utilities.jsonStringify(range.getValues()) + ')' ;
return ContentService.createTextOutput(json).setMimeType(ContentService.MimeType.JAVASCRIPT);
}
//------------------------------------------------------------------------------
function testDoGet() {
var request = {parameters: {jsonp: 'callback'}};
var results = doGet(request);
Logger.log(results.getContent());
}
我猜这个问题来自Google Sheet,但我不知道到底在哪里?
有人有线索吗?
答案 0 :(得分:0)
也许这就是问题。
(第15行)Uncaught SyntaxError:意外的令牌&lt;
更改
<script type=application/javascript>
至
<script type="application/javascript">