【问题标题】:Loading a text file through AJAX gives restricted URI error通过 AJAX 加载文本文件会出现受限 URI 错误
【发布时间】:2014-02-18 13:29:42
【问题描述】:

我提到我阅读了建议的链接......并且无法理解 建议..”使用 Greasemonkey 修改 Pages 并开始写一些 javascript修改网页

我正在加载一个带有$.ajax 的文本文件。在 Firefox 上运行代码时,出现以下错误:

错误:[“访问受限 URI 被拒绝”代码:“1012”nsresult:“0x805303f4 (NS_ERROR_DOM_BAD_URI)”位置:“”]

这是我的代码:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        $("button").click(function () {
            $.ajax({ url: "demo_test.txt",
                success: function (result) {
                    $("#div1").html(result);
                },
                error: function (abc) {
                    alert(abc.statusText);
                },
                cache:false
            });
            return false;
        });
    });
</script>
</head>
<body>

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

</body>
</html>

我已经阅读了以下问题:

有人建议不要使用文件系统,所以把网址改成http://demo_test.txt,但还是没有解决问题。

我还听说可能是因为跨域问题。如果是这样,那究竟是什么意思,我应该如何解决这个问题?

【问题讨论】:

  • 您是否正在使用 filr 协议...又名 c:\\test\foo.html github.com/mrdoob/three.js/wiki/How-to-run-things-locally
  • 我想我不是。根据您的链接,我做了以下操作: 1. 将 url 更改为“D:\\demo_test.txt” 2. 更改 Firefox 中的本地文件安全策略。但它仍然给我同样的错误
  • 你是在本地服务器上运行吗....又名http://localhost 或者你只是点击一个文件,它会在浏览器中打开。
  • 我点击 HTML 文件。它在 FireFox 中打开,地址为“file:///C:/Users/Administrator/Desktop/New%20folder/my_html.html”
  • 您在本地文件协议上运行。您需要启用 Firefox 才能访问文件,就像我在第一条评论中发布的链接告诉您的那样。你真的应该在本地运行 IIS 或 Apache 而不必处理这个问题。

标签: javascript jquery ajax


【解决方案1】:

浏览器安全性阻止代码运行。您最好运行本地服务器,例如 IIS 或 Apache。

您可以通过更改浏览器配置来更改浏览器以运行本地内容

火狐

  1. 转到 about:config
  2. 找到security.fileuri.strict_origin_policy参数
  3. 设置为假

【讨论】:

  • 我已经做了那个设置。现在我把我的 html 文件和文本文件放在 IIS 的默认网站中(它正在运行)并再次浏览它:新的 url 是“localhost:2020/my_html.html"......but 仍然存在异常:[异常...“”nsresult:“0x805e0006()”位置:“JS frame :: ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js :: .send :: line 6”数据:无]
  • 你的建议有帮助
  • 这对我也有帮助,但你知道这是不是 FF 的特殊性吗?
【解决方案2】:

我似乎终于让它工作了。这是工作脚本

$("button").click(function(){
    $.ajax({url:"http://localhost/demo_test.txt",success:function(result){
      $("#div1").html(result);
    }});
  });

解决方法:将 html 文件和文本文件放在本地服务器 (IIS) 新站点上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 2019-07-07
    • 2017-06-15
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多