HTML5 appcache导致jquery getJSON返回错误

时间:2016-01-18 21:50:59

标签: jquery html5 html5-appcache

我在尝试在链接上使用getJSON时遇到问题,而当前页面是通过appcache缓存的。我使用navigator.onLine检查了浏览器是否在线,我确定我的互联网已连接。我已尝试使用AppCache和没有,当我使用AppCache时,似乎只有一个错误,这让我相信我做错了什么或者你无法发送当页面加载appcache时json请求?

以下是启用和未启用appcache的json请求(请参阅下面的代码)的结果:

使用AppCache(失败): enter image description here

没有AppCache(它可以工作): enter image description here

注意: 请求是跨域的,但我确实在目的地设置了Access-Control-Allow-Origin

我的代码

Service.appcache

CACHE MANIFEST
plugins/bootstrap-switch.min.css
plugins/bootstrap-timepicker.min.css
plugins/bootstrap-datepicker.css
plugins/jquery.min.js
plugins/bootstrap-switch.min.js
plugins/bootstrap-datepicker.min.js
plugins/bootstrap-timepicker.min.js
plugins/Dexie.min.js
plugins/jSignature.min.js
plugins/bootstrap.min.css
plugins/select2.min.css
plugins/select2.full.min.js
fonts/glyphicons-halflings-regular.woff
fonts/glyphicons-halflings-regular.ttf
fonts/glyphicons-halflings-regular.woff2


SETTINGS:
prefer-online

的index.php

<html manifest="/service.appcache"> 
....
$( document ).on( 'click', '#getdbdata', function () 
{
    if(navigator.onLine == true) 
    {
        $.getJSON( "http://example.com/getdata?apikey="+apikey, function( data ) 
        {
            console.log(data);
            alert( "Database has been updated!" );
        })
        .fail(function() {
            alert( "Could not update the database at this time!" );
        })

    }
});
....
</html>

我不太了解appcache,所以我想知道为什么请求没有通过。任何帮助都会很好,谢谢!

1 个答案:

答案 0 :(得分:2)

您需要将NETWORK: *部分添加到您的CACHE MANIFEST。