2

.appcache マニフェストを使用するアプリケーションがあります。すべてが期待どおりに機能し、リソースがキャッシュされます。

CACHE MANIFEST

CACHE:
css/images/ajax-loader.gif
[...]

NETWORK:
http://docs.google.com/*

SETTINGS:
prefer-online

ここで、 http ://docs.google.comから CSV リソースをリクエストすると、次のようになります。

$.get(url, function (data) {
  // do something with the data
}).fail(function () {
  alert("There was an error in loading current data from the server.");
});

私が実際にオンラインであっても(ChromeとFFの両方で)、リクエストは失敗します。Appcache を使用する前は、すべて正常に機能していました。

Appcache マニフェストを持っているときに外部リソースを要求する正しい方法は何ですか?

4

2 に答える 2

1

コメントで述べたように、問題は (のみ) jQuery ではなく、CORS resp にもありました。Google ドキュメントのサポートの欠如 (「Web に公開」はダウンロードを意味し、別の URL、つまりオリジンからリソースを要求することを意味しません。どうやら Google はHeader set Access-Control-Allow-Origin "*".

代わりに私がしたことは、次の役立つガイドに従うことでし。 ://developers.google.com/gdata/samples/spreadsheet_sample (URL は CSV ではなく JSONP になりました。これも次のように変更され//spreadsheets.google.com/feeds/list/[...]/[...]/public/values?alt=json-in-script、jQuery は以下でcallback=xxx呼び出されると自動的に を追加します。

$.ajax({
  url : url,
  type : 'GET',
  dataType : 'jsonp',
  success : function (data) {
    for(var i in data.feed.entry) {
      console.log(entry['gsx$' + 'actualColumnHeader'].$t);
    }
  },
  error : function () {
    alert('Failed');
  }
});

これは決してきれいでもきれいでもありません (解析するためだけに CSV や JSON の代わりに Atom フィードを使用しますか? 真剣に?) が、私にとってはうまくいきます。

于 2013-08-11T16:19:22.393 に答える