TsuyoshiKusakaの日々思うこと その2

ITエンジニア、@tsuyoshikusaka

Javascript から Google Apps Script にアクセスする方法 補足

以前に

JavascriptからGoogle Apps Scriptにアクセスする方法 - TsuyoshiKusakaの日々思うこと その2

JavascriptからGoogle Apps Scriptにアクセスする方法 その2 - TsuyoshiKusakaの日々思うこと その2

JavascriptGoogle Apps Script(以下、GAS) 間での通信について書いたが、

Chrome の仕様変更で、サンプルで書いていた GAS ソースのままでは動かなくなっていたので補足。

 

以前のソースのままで実行した場合、
Javascript から GAS に http リクエストは送付されるが、データが Javascript 側に返らなかった。
Chrome のデバッガで確認すると

 Refused to execute script from '(ここには GAS の URL が入る)' because its MIME type ('text/plain') is not executable, and strict MIME type checking is enabled.

というエラーが発生していた。
※ちなみに、FireFox であれば、このエラーにはならず、問題なく動く。

Chrome の仕様が厳格化されたことによる制限らしい。
※詳しくは、以下あたりを参照。

TEST CORDING » GithubからJavaScriptを読み込み時は専用のドメインから!

javascript - MIME type error with .js in all browser in a view of SharePoint 2013 - Stack Overflow

 

回避方法としては、GAS で返すデータの MIME タイプを指定すればOK。

  var out = ContentService.createTextOutput(e.parameter['jsoncallback'] + '(' + getData() + ')');
 ↓
  var out = ContentService.createTextOutput(e.parameter['jsoncallback'] + '(' + getData() + ')').setMimeType(ContentService.MimeType.JAVASCRIPT);

 

もともとちゃんと指定しておくべきだったか・・・