Internet Explorer中的JavaScript错误“访问被拒绝”

时间:2013-06-20 12:48:52

标签: javascript internet-explorer

我在IE中运行网页时遇到此错误(代码在其他浏览器中运行正常)。

这是HTML代码:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
</head>
<body>
<--- some html code --->
<iframe src='http://localhost/page1.php' style="background: transparent; overflow: hidden; height: 210px; width: 390px;" frameborder="0"  />
</body>
</html>

这是page1.php

<!DOCTYPE html>
<html>
<body>
<form action="usercheck.php" method="POST">
USERNAME:<input name="uname" id="uname" type="text" maxlength="12" required/>
<input type="submit" value="Submit">
</form>
</body>
</html>

这是usercheck.php

<?php
//some php code    
?>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
</head>
<body>
<--- some html code --->
</body>
</html>

问题是,在usercheck.php点击提交按钮后到达page1.php时,我收到错误http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js. Access is denied.以下是错误的图片:http://i.stack.imgur.com/diCoF.jpg。然后我得到错误'$'符号未定义(这是由于无法加载jquery库)。

编辑 - 我已经尝试在我的服务器中包含jquery文件,但仍然出现错误。我也尝试过usercheck.php的代码:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
/*! jQuery v1.10.1 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=jquery.min.map
//and the rest of the jquery library...
</script>
</head>
<body>
<--- some html code --->
</body>
</html>

我这次得到的错误是:http://i.stack.imgur.com/hR9aN.jpg(usercheck2.php的原始名称是我服务器中的rscheck.php)。然后我得到'$'符号未定义的错误(这是由于无法加载jquery库)。如果我直接打开page1.php的内容(通过url-localhost / page1.php),那么一切正常。

这是我使用JQuery的唯一代码:

if($("#pret").contents().text().search("NAMECHECK: NOTAVALIBLE")!=-1)

只有当我可以将此代码转换为javascript时,我才能排除jquery。

4 个答案:

答案 0 :(得分:6)

这是一个合法的jQuery 1.10.1错误:http://bugs.jquery.com/ticket/13980   使用jQuery 1.10.01.10.2不再出现错误。

答案 1 :(得分:0)

尝试将jquery.min.js下载到您的服务器并从那里包含它。例如:

<script type="text/javascript" src="/jquery.min.js"></script>

看起来Internet Explorer无法访问资源:将其下载到您自己的服务器可能会解决问题。

答案 2 :(得分:0)

这是我的问题的工作解决方案。我想要jquery的原因是我想运行这段代码:

if($("#pret").contents().text().search("NAMECHECK: NOTAVALIBLE")!=-1)

我删除了jquery库并使用此javascript执行相同的操作:

var n=document.getElementById("pret").innerHTML.search("NAMECHECK: NOTAVALIBLE");
if(n != -1)

现在页面中没有错误,我可以做我想要的。因此,错误是由于jquery库无法在网页中加载而导致的。但我不知道为什么即使在我的服务器下载jquery库后我得到了同样的错误,即。 “访问被拒绝”。

答案 3 :(得分:-1)

原因在于iframe。当jQuery从外部主机加载到iframe中时,每当您尝试在主/外部html文件中使用任何jQuery函数时,IE都会因安全原因而抛出错误。

1)将jQuery上传到您的服务器,

2)或仅将其包含在主html文件中(不在iframe中)。