GoogleAppsScriptにJSONPでアクセスした時にSEC7112エラーで取得できない場合の対処法。
GoogleAppsScript側はこちらを参考に。
http://qiita.com/items/d940ef8db0bd23c0f236
JavaScript側こんな感じ。jquery-jsonpを使用。これを使わないとエラーがキャッチできない。
$.jsonp({ url : "URL", dataType : "jsonp", callbackParameter: 'callback', contentType: "application/javascript; charset=utf-8", success : function(json){ alert('success') }, error : function(err1, err2,err3){ alert('error'); } });
FirefoxとかChromeならこれで問題なくJSONが取得できるんだけど、IEだと冒頭の通り「SEC7112. "MIME の種類が一致しないため、[URL] からのスクリプトがブロックされました". 」となってエラーになってしまいます。
色々試した結果、こちらの記事を参考に、mimeTypeを変更。
return ContentService.createTextOutput(callback + '(' + JSON.stringify(returnObject) + ')').setMimeType(ContentService.MimeType.JAVASCRIPT);
これで取得できた。色々試したのでもしかしたら不要な設定も入っているかも…。