我在尝试在链接上使用getJSON时遇到问题,而当前页面是通过appcache缓存的。我使用navigator.onLine
检查了浏览器是否在线,我确定我的互联网已连接。我已尝试使用AppCache和没有,当我使用AppCache时,似乎只有一个错误,这让我相信我做错了什么或者你无法发送当页面加载appcache时json请求?
以下是启用和未启用appcache的json请求(请参阅下面的代码)的结果:
注意: 请求是跨域的,但我确实在目的地设置了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,所以我想知道为什么请求没有通过。任何帮助都会很好,谢谢!
答案 0 :(得分:2)
您需要将NETWORK: *
部分添加到您的CACHE MANIFEST。