通过AJAX加载文本文件会产生受限的URI错误

时间:2014-02-18 13:29:43

标签: javascript jquery ajax

  

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

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

  

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

这是我的代码:

<!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,但这并未解决问题。

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

2 个答案:

答案 0 :(得分:16)

浏览器安全性会阻止代码运行。最好运行IIS或Apache等本地服务器。

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

<强>火狐

  1. 转到about:config
  2. 查找security.fileuri.strict_origin_policy参数
  3. 将其设为false

答案 1 :(得分:1)

我似乎终于开始工作了。这是工作脚本

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

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