无法清除临时存储:确定某些文件对于Web应用程序内的访问不安全,或者对文件资源进行了太多调用。的SecurityError
我在控制台中收到此错误。我有一个脚本名称script.js,它使ajax调用从php中检索数据。
知道为什么吗?
这是我的jQuery脚本
$(document).ready(function() {
var loading = false;
var docHeight = $(window).height();
$('.timeline').css({minHeight: docHeight});
function get_tl_post() {
if (loading==false) {
loading = true;
$.ajax({
type:"POST",
url:"timeline.php",
data:"data=instagram",
beforeSend:function(){
$('.loader').fadeIn("slow");
},
complete:function(){
loading = false;
$('.loader').fadeOut("slow");
},
success:function(data) {
if(data=="error")
{
get_tl_post();
}
$(data).hide().appendTo(".timeline").fadeIn(1000);
}
});
}
}
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
get_tl_post();
}
});
});
答案 0 :(得分:8)
换句话说,您可能在Chrome开发工具中添加了添加的工作区文件夹。 现在,当您尝试在某些文件中进行更改时,它会向文件系统发出请求。这工作正常一段时间。但是,在某些情况下,您会删除网络映射。
然后,当您尝试在浏览器上打开该网页时,它可能会或可能不会要求重新映射网络资源,但仍尝试更新文件系统。 那是你得到这个错误的时候。 你的脚本没有任何问题。
现在唯一的解决方案可能是删除缓存,然后重新启动系统。 如果问题仍然存在,您可以简单地重新安装chrome,这应该是固定的。
此外,有时网络映射也会导致其他几个问题。 例如,使CSS文件大小为75MB或更高。因此,在使用网络映射时必须采取预防措施。
可选择如果您使用的是Mac ...或者甚至在Windows上并且拥有sh 命令可用。
sudo find / -type f -size +50000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
在你的终端点击这个以查找超过50MB的罪魁祸首个人文件。你可以删除它们。
注意:上述命令的作用是,它会找到超过50MB的所有单个文件,并逐个在终端上打印。
答案 1 :(得分:2)
如果我猜我会说你的timeline.php
脚本总是在返回"错误"所以你递归地拨打了太多的电话,浏览器阻止它们。
尝试消除递归函数调用,看看是否能解决问题。
删除以下3行,然后重试:
if (data == "error")
{
get_tl_post();
}
答案 2 :(得分:1)
如果您的ajax调用由于某种原因失败,则可能会导致get_tl_post();
的递归调用过多。
我建议您使用error
属性进行错误处理,并避免递归调用函数的情况。一个想法可能是设置一个类似&#34的策略;如果请求失败/数据有错误,请等待一段时间,然后重试。如果进行了X重试,则显示错误代码并停止请求"。
以下是未经测试的代码的示例,以便向您展示这个想法:
var attempts = 0;
$.ajax({
//Rest of properties
success: function(data) {
if(data == "error") {
if(attempts < 3) {
setTimeout(function(){
get_tl_post();
++attempts;
}, 2000);
} else {
//output failure here.
}
}
//Rest of code....
}
});