いてづきブログ

情シスでやってみたことの備忘録

IEでJSONPがSEC7112でエラーになった

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);



これで取得できた。色々試したのでもしかしたら不要な設定も入っているかも…。