为什么IE7和IE8在调用jQuery时给我“访问被拒绝”?

我正在使用Google CDN将jQuery 1.4.2 Min File调用到我的应用程序中。 一个FF,Chrome,Safari一切都很好。 但由于某种原因,我得到了第127行的jquery.min.js文件的“拒绝访问”错误...? 我不明白。 任何人都知道为什么会这样做? 我完全无能为力。 ! 截图

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"
    type="text/javascript"></script>

case 1:
methodName = "SavePropertyInformation";
var HasFoundProperty, PropertyType, NumberOfUnits,
PropertyAddress, PropertyCity, PropertyState,
PropertyZipCode, PropertyCounty;

HasFoundProperty = $("#foundProperty input[type='radio']:checked").val();
PropertyType = $('#<%= this.fvApp.FindControl("ddlPropertyType").ClientID %>').val();
NumberOfUnits = $('#<%= this.fvApp.FindControl("ddlNumberOfUnits").ClientID %>').val();
PropertyAddress = $('#<%= this.fvApp.FindControl("txtPropertyAddress").ClientID %>').val();
PropertyCity = $('#<%= this.fvApp.FindControl("txtPropertyCity").ClientID %>').val();
PropertyState = $('#<%= this.fvApp.FindControl("ddlPropertyState").ClientID %>').val();
PropertyZipCode = $('#<%= this.fvApp.FindControl("txtPropertyZipCode").ClientID %>').val();
GetCountyFromZipCode(PropertyZipCode);
PropertyCounty = GetCounty();
data = "{WebAccessID:'" + WebAccessID + "', HasFoundProperty:'" + HasFoundProperty + "', PropertyType:'" + PropertyType + "', NumberOfUnits: '"
    + NumberOfUnits + "', PropertyAddress: '" + PropertyAddress + "', PropertyCity:'" + PropertyCity
    + "', PropertyState:'" + PropertyState + "', PropertyZipCode:'" + PropertyZipCode + "',PropertyCounty:'"
    + PropertyCounty + "' }";
doAjaxReq(methodName, data, showSavingDialog);
break;

由于相同来源策略,对子域的呼叫被视为不同的域。 确保您正在设置document.domain以避免使用相同来源策略拒绝访问。

要使document.domain同步,您需要将它设置在两个位置。 添加设置域的脚本标记,并且您需要在页面上设置一个iframe,以在另一个域上设置相同的内容。

Ajax调用来自“www.example.com”并调用“ajax.example.com”的页面:

<script type="text/javascript">
  document.domain = "example.com";
</script>
<iframe src="http://ajax.example.com/domainCode.html"></iframe>

“domainCode.html”只包含脚本标签

<html>
  <head>
    <script type="text/javascript">
      document.domain = "example.com";
    </script>
  </head>
  <body>
  </body>
</html>

有了这个,你应该可以在你的子域之间进行讨论。


确保IE没有任何代理设置,自动配置脚本或类似的喜好。 我看到你的代码没有错。


我相信这个问题源于Internet Explorer中的某个安全功能,您不允许从远程服务器加载代码,除非它被浏览器视为“可信”。 从我读到的情况来看,有些情况下浏览器不会对此抱怨,然后还有其他情况下不允许这样做。 不确定你的实例中具体的触发器是什么,但我敢打赌,这是你问题的根源。

如果我是你,我只会在本地加载jQuery,直到你遇到性能问题,否则就会提示你。 将文件命名为jquery-latest.js,然后在出现JQ的新版本时,首先在本地测试它们,然后在您确信它能正常工作时替换该文件。 或者,保留版本名称的文件并逐一升级每个页面,无论哪一个更容易为您的应用程序使用。

资料来源:http://geekswithblogs.net/TimH/archive/2006/05/17/78673.aspx

链接地址: http://www.djcxy.com/p/47331.html

上一篇: Why is IE7 and IE8 Giving me "Access Denied" when calling jQuery?

下一篇: Problem acquiring wake lock from broadcast receiver