2013-10-25 102 views
0

我有这样的代码:JQuery的负载功能似乎并没有工作

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
</script> 
<script> 
$(document).ready(function(){ 
    $("button").click(function(){ 
    $("#div1").load("./a.txt"); 
    }); 
}); 
</script> 
</head> 
<body> 

<div id="div1"><h2>Let jQuery AJAX Change This Text2</h2></div> 
<button>Get External Data</button> 

</body> 
</html> 
enter code here 

但是点击按钮后没有任何反应。我也尝试加载(“/ a.txt”);仍然没有运气。

尝试了不同的浏览器,没有成功。

* 更新 *

================================== ==================

我设法解决上述问题(部分)通过将文件放入Web服务器。

现在我有另一个相关的问题。运行Jquery的按钮似乎只能工作一次。那是当我更改文本文件的内容并单击按钮时,我总是看到旧文件的文本。我想浏览器缓存Jquery加载的数据?

+0

你使用一个Web服务器? a.txt的内容是什么?是否可以访问a.txt? –

+1

./a.txt?应该这个路径错误 – underscore

+0

@praveen。不,我最初没有,那是我的错误。最后我把一个a.txt和HTMl文件放在一个虚拟目录中,它工作正常。 这个东西就是Jquery的所有其他功能,例如动画和隐藏显示功能不需要Web服务器。但显然,Jquery只能在服务器上加载文件。它是否正确? –

回答

1

有两种方法可以停止你的要求越来越缓存,如果你不介意你的任何Ajax请求的开始缓存你可以添加到您的代码的开始。

$.ajaxSetup ({ 
    // Disable caching of AJAX responses 
cache: false 
}); 

或者,如果你想这样做只是为了这个要求,您可以只需添加一个缓存明确PARAM像

$("#div1").load("./a.txt?_="+Math.round(Math.random()*10000)); 
+0

谢谢。 $ .ajaxSetup({禁用缓存AJAX响应 缓存:false });没有工作,但第二个解决方案工作。 –

0

试试这个

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
</script> 
<script> 
$(document).ready(function(){ 
    $(document).on('click',function(){ 
    $("#div1").load("../a.txt"); 
    }); 
}); 
</script> 
</head> 
<body> 

<div id="div1"><h2>Let jQuery AJAX Change This Text2</h2></div> 
<button>Get External Data</button> 

</body> 
</html>