我正在尝试使用jQuery AJAX从与html文件相同的目录中的文本文件“randomtext.txt”中提取文本,并在单击按钮时将其放在id为ajax_div的div中。但是,这不起作用。浏览器找不到文本文件。我检查了浏览器登录chrome并收到此错误:
XMLHttpRequest无法加载file:/// C:/xampp/htdocs/randomtext.txt。收到无效回复。因此不允许原点'null'访问。
Firefox记录此错误:
[20:07:55.847]语法错误@ file:/// C:/xampp/htdocs/randomtext.txt:1 [20:07:55.849]语法错误@ file:/// C:/xampp/htdocs/jquery_ajax.html:1
以下是我的代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src ="jquery-2.0.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button#ajax_click").click(function() {
jQuery.ajax({url: "randomtext.txt",success: function(result) {$("div#ajax_div").html(result);}});
});
});
</script>
</head>
<body>
<div id = "ajax_div"></div>
<button id="ajax_click">Click me!</button>
</body>
</html>
我已经完成了其他解决方案,例如放入整个文件目录代替网址,但无济于事。
谢谢
答案 0 :(得分:4)
由于安全访问限制,您无法使用ajax加载本地文件。
这可能会有所帮助; How to launch html using Chrome at "--allow-file-access-from-files" mode?
另一个解决方案可能是使用XAMPP,WAMP或只是在服务器上开发。
编辑:
哦,没注意到你正在使用xampp;只需通过http://localhost/
而不是file://
运行您的文件。
答案 1 :(得分:3)
您收到的错误表明您使用的是file://
个网址。您可能会发现在本地http服务器实例上运行此代码可以缓解此问题(即通过ajax加载正确的http资源)。
顺便说一下,混合file:///c:/
和http://localhost
请求 - 即使您的浏览器允许前者 - 仍然可能无法进行ajax调用,因为浏览器不会检测到这些URL来自相同的主机(即使它们在同一台机器上)。