访问受限 URI 被拒绝代码:1012

Posted

技术标签:

【中文标题】访问受限 URI 被拒绝代码:1012【英文标题】:Access to restricted URI denied code: 1012 【发布时间】:2010-09-08 06:05:51 【问题描述】:

如何在 FireFox 3 上解决这个 Ajax 跨站点脚本问题?

【问题讨论】:

【参考方案1】:

如果你使用 jQuery,它有一个回调函数来解决这个问题:

http://docs.jquery.com/Ajax/jQuery.ajax#options

从 jQuery 1.2 开始,您可以加载 JSON 位于另一个域的数据,如果您 指定一个 JSONP 回调,可以是 这样做:“myurl?callback=?”。 jQuery 自动替换 ? 使用正确的方法名称调用, 调用您指定的回调。要么, 如果您将 dataType 设置为“jsonp” 回调将自动添加 到您的 Ajax 请求。

或者,您可以向服务器端脚本发出 ajax 请求,该脚本为您执行跨域调用,然后将数据传回您的脚本

【讨论】:

那是你必须使用第二个选项,在传递 xml 的服务器端脚本中进行跨域调用 我正在处理 JSON,添加 &callback=?却收到同样的错误 @Miroo 我也有同样的问题。你找到解决办法了吗?【参考方案2】:

为了更新答案(我想,主要是为了我稍后来寻找这个答案时的好处),如果正在加载 XML 或其他内容,您可以随时询问用户是否允许我们从其他站点读取使用此代码:

try 
    if (netscape.security.PrivilegeManager.enablePrivilege)
        netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
 catch (e)  
    alert("Sorry, browser security settings won't let this program run."); 
    return; 

(来自 RESTful Web 服务一书)但是,这只适用于 Firefox,当从本地文件加载 html 文件时。所以,没那么有用。

【讨论】:

【参考方案3】:

另一种解决方案:如果您只需要标头,您可以指定“HEAD”作为方法,它不会触发安全问题。例如,如果您只想知道网页是否存在。

var client = new XMLHttpRequest();
client.open("HEAD", my_url, false);
client.send(null);
if(client.readyState != 4 || client.status != 200) //if we failed
    alert("can't open web page");

【讨论】:

【参考方案4】:

更多细节会更好:您正在使用哪个 AJAX 库,您希望实现什么目标,如何实现。

比如可以是跨域的ajax请求,这是不允许的。在这种情况下使用JSON。

【讨论】:

抱歉,在 FireFox 3 上使用 JQuery $.ajax 时遇到了这个错误。尝试了 jsonp 建议,但我认为这只适用于可以提供 json 的东西。我正在尝试创建一个基于本地 html 文件的示例混搭,该混搭将从 Yahoo!Finance 中提取数据,但它们提供的是 .csv,所以我认为我是 SOL。 使它工作的“魔法”是 JSONP 的“P”部分(填充),而不是 JSON 本身。使用固定服务(例如 Yahoo,您可能不走运),因为他们不会更改其服务以使其可用于以这种方式调用。【参考方案5】:

我最近遇到了这个问题,它是在我作为 AJAX 加载本地请求时,而不是跨站点脚本问题。此外,吉米本人似乎也有同样的问题。这似乎是FF的安全问题,这篇文章描述了cause and the solution to access to restricted uri denied" code: "1012 problem。

抱歉,使用 JQuery 时出现该错误 FireFox 3 上的 $.ajax。试过 jsonp 建议,但我认为那只会 使用可以提供服务的东西 json。我正在尝试创建一个示例 基于本地 html 文件的混搭,将 从 Yahoo!Finance 中提取数据,但他们 正在服务.csv,所以我认为我是 SOL。 – Jimmy Chandra(9 月 9 日 17:20)

我希望你会发现它有用。

【讨论】:

以上是关于访问受限 URI 被拒绝代码:1012的主要内容,如果未能解决你的问题,请参考以下文章

错误:[异常...“访问受限 URI 被拒绝”...在调用 $.ajax 方法时

服务端点未能侦听 URI“0”,因为访问被拒绝 [关闭]

尽管已设置密码并在连接 uri 中输入密码,但用户 root@localhost 的 mysql 访问被拒绝(使用密码:否)

访问被拒绝:BigQuery BigQuery:写入数据时权限被拒绝

带有签名 URL 的 AWS CloudFront:403 访问被拒绝

托管到IIS后无法启动浏览器访问被拒绝