JQuery AJAX在同一目录中找不到文本文件

时间:2014-06-02 14:28:46

标签: javascript jquery ajax

我正在尝试使用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>

我已经完成了其他解决方案,例如放入整个文件目录代替网址,但无济于事。

谢谢

2 个答案:

答案 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来自相同的主机(即使它们在同一台机器上)。