2010-03-14 38 views

回答

1

使事情简短。您无法使用ajax加载远程域内容。这是所有浏览器应用的限制,称为Same origin policy。所以试图加载来自不同子域的数据已经违反了相同的原始策略。

你可以从不同的域中加载数据的唯一事情是使用JSON

jQuery.getJSON()


@马特的评论:

我确实在想JSONP。这正是jQuery的使用的getJSON如果URL是一个远程服务器

从文档上:

如果指定的URL是一个远程 服务器上,该请求被视为 JSONP代替。有关 的讨论,请参阅$.ajax()中的jsonp数据类型,以了解更多详细信息,请参阅 。

+0

技术上不正确。进行AJAX调用并返回JSON仍然会受到影响。也许你正在考虑JSONP? – Matt 2010-03-14 10:54:38

+1

是的,我的意思是JSONP看到扩展的答案 – jitter 2010-03-14 11:28:27

0

您正在运行浏览器执行来自不同域的ajax请求的安全限制。一种选择是通过当前域来代理您的请求。像Simple PHP Proxy这样的东西会为你工作。

0

使用document.domain是最具灵活性的最兼容的方法。

document.domain =“domain.com”;

这里是不同的跨域技术一个很好的总结陈述: http://www.slideshare.net/SlexAxton/breaking-the-cross-domain-barrier

但它是绝对重要的,没有人可以对域设置子域,因为如果他们可以,他们可以用它来捕捞数据。