【问题标题】:Issue with jQuery .get() in IEIE 中的 jQuery .get() 问题
【发布时间】:2012-01-06 12:42:26
【问题描述】:

我正在使用 jQuery .get() 像这样从另一个页面获取一些内容 -

$.get("http://www.somesite.co.uk/generalsite/PopDownMenu", function (htmlContent) {
    $("#masternav").html(htmlContent);        
});

此脚本在除 IE 之外的所有浏览器中都能正常工作。

是我的脚本还是我从中获取的页面?

【问题讨论】:

  • 如果它在其他浏览器中工作,我看不出任何在 IE 中不能工作的原因。回调会触发吗?
  • 这是您抓取的第三方网站吗?在这种情况下,您可能是同源策略en.wikipedia.org/wiki/Same_origin_policy 的受害者
  • @JamesAllardice,我找不到它可以在其他浏览器上运行的原因,因为他似乎违反了相同的来源政策。
  • @DarinDimitrov - 他说它适用于其他浏览器这一事实可能意味着他没有违反同源策略(即此代码从 watchfinder.co.uk 运行)。
  • @JamesAllardice,他正在尝试从 http://thewatch.watchfinder.co.ukhttp://www.watchfinder.co.uk 发送 AJAX 请求,这违反了同源策略。

标签: jquery internet-explorer get


【解决方案1】:

我正在使用 jQuery .get() 像这样从另一个页面获取一些内容

您似乎违反了same origin policy。您不能发送跨域 AJAX 请求。因此,除非您的站点托管在 http://www.watchfinder.co.uk/ 上,否则出于安全原因,您不能向该域发送 AJAX 请求。您可以查看following article 以了解可能的解决方法。

【讨论】:

  • 我的网站托管在thewatch.watchfinder.co.uk,这是我可以在页面上执行的任何操作以允许从手表访问吗?
  • @seanjacob,不,您违反了同源策略限制。 thewatch.watchfinder.co.ukwww.watchfinder.co.uk 被视为跨域。阅读我在答案中链接的文章,了解可能的解决方法。
  • @DarinDimitrov:令人惊讶的是,来自 OPs 问题的 uri 似乎适用于跨域 ajax 调用。可能是某种 CORS 正在运行?至少在 FF 和 Chrome 中运行良好。检查jsfiddle.net/MfVea
  • @DarinDimitrov 好的,谢谢,如果我找到解决方案,我会发布解决方案。
  • 虽然大多数浏览器都支持 CORS,但并非所有版本都支持。请参阅此链接中的完整列表:caniuse.com/cors。长话短说,如果您的用户群是普通受众,最好不要依赖它的可用性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-25
  • 1970-01-01
  • 2011-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多