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

时间:2010-08-12 18:35:45

标签: javascript jquery

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

代码

<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;

4 个答案:

答案 0 :(得分:5)

由于Same Origin policy,对子域的调用被视为不同的域。确保您设置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>

有了这个,您应该可以在子域之间进行交谈。

答案 1 :(得分:0)

确保IE没有任何代理设置,自动配置脚本或首选项中的任何内容。我认为您的代码没有任何问题。

答案 2 :(得分:0)

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

如果我是你,我会在本地加载jQuery,直到你遇到性能问题,提示你不要这样做。将文件命名为jquery-latest.js,然后在出现JQ的新版本时,首先在本地测试它们,然后在您确信它有效时替换该文件。或者,保留以版本命名的文件并逐页升级每个页面,以便于您的应用程序使用。

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

答案 3 :(得分:-1)

你坐在防火墙后面吗?它可能会阻止您连接和下载jquery.js。

相关问题