コンテンツサービスを使用してGoogleアプリscriptDBからJSONデータを取得するスクリプトがあります。私はjQueryJSONPを使用しています(明らかにGASからのクロスドメインであるため)。ChromeとSafariではすべて正常に動作していますが、IEではもちろん問題が発生しています。
このIE/MSDNの記事に出くわしました。この記事では、クロスドメインJSONPを特定のmimeタイプとして提供する必要があると説明していますが、Google AppsScriptContentサービスでmimeタイプを次のように変更できるとは思いません。許容値の1つ。
代わりに、私はxDomainRequestを見てきましたが、このコードにはSCRIPT5が含まれています。IE9およびIE10のxdr.open()行でアクセスが拒否されています。
if (window.XDomainRequest) {
// its IE
var xdr = new XDomainRequest();
xdr.open("get", url);
xdr.onload = function() {
deferred.resolve(JSON.parse(xdr.responseText));
}
xdr.onerror(function() {
deferred.reject("error with IE xdomain request for " + url);
});
xdr.send();
}
else {
$.getJSON(url, null,
function (data) {
deferred.resolve(data);
})
.error(function(res, status, err) {
deferred.reject("error " + err + " for " + url);
});
}
return deferred.promise();
フェッチされているURLは https://script.google.com/macros/s/AKfycbzc0yBs8FfUZyJP1IhGpeTx-MsC288Ml6VYHjnqN9B9Kl3phHuh/exec?panelset=xliberation_panel&callback=?
スクリプト全体はhttp://xliberation.com/s/badgemanager.htmlです。
これに関連するトピックについての投稿をたくさん見ましたが、何も機能させることができませんでした。IE / GASの組み合わせのJSONPを明確に理解している人はいますか?