我根據在Google表格中定義的位置在Google地圖上繪製了一些標記。拒絕從「*」執行腳本,因爲它的MIME類型('text/HTML')不可執行
對於一個谷歌表的標誌繪製,但如果我做這個工作表的副本,並推出我的網頁,我得到這個消息的錯誤:
Refused to execute script from ' https://script.google.com/a/macros/MYDOMAIN/s/My-Script-ID/exec?Jsonp=callback ' because its MIME type ('text/HTML') is not executable, and strict MIME type checking is enabled.
下面是我的一些JavaScript的HTML頁面碼。
//.. 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表格都是以相同的選項發佈的。
以下是我在這兩個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表格,但我不知道究竟在哪裏?
有人有線索嗎?
近年來..但我認爲這個問題是與MIME類型谷歌驅動器,使得它認爲所有文件都是text/html。 – Nevermore 2016-07-27 06:19:41