2014年6月9日 星期一

HTML5 : JSON callback 以 JavaScript 的 MimeType 回傳

今天突然發現 HTML5 版筆順練習程式在 Chrome 裡卡住了,平時大都在 iPad 的 Safari 中執行的,好一陣子沒在 Chrome 中玩,也不知道這種情形已經多久了?

追了一下錯誤訊息,Chrome 不讓 HTML5 去呼叫由 Google App-Scripts 傳回來的筆順資料,原本的設計,回傳的格式是用 JSON 的 MimeType ,以 callback 的方式傳給 HTML5 程式,本來運作的好好的,多半是 Chrome 的更新,又改了什麼預設的動作。


主要的錯誤訊息是:

Refused to execute script from '...... 略 ......' MIME type ('application/json') is not executable, and strict MIME type checking is enabled.

看來 Google Apps-Script 那邊傳來 JSON 的「application/json」header,Chrome 並不把它當可執行的程式。找不到如果修改 Chrome 的地方,索性修改 Google Apps-Script 的程式碼,可以一勞永逸。

將最後傳值原來的:

setMimeType(ContentService.MimeType.JSON)

改為:

setMimeType(ContentService.MimeType.JAVASCRIPT)

以 JavaScript 的 MimeType 回傳,這樣,Chrome 總不會再拒絕讓它執行了吧!仔細地想了一想,啊!會不會本來就應該這樣寫,只是之前瞎貓碰到死耗子罷了!Chrome 常常在更新,對寫程式的人來說,有時也是困擾,這兩年來已經遇到好幾次這樣了。


1 則留言:

 
© 2009. Design by Pocket