我想从一个子域(http://resort.domain.com)使用jquery加载文件(http://domain.com/v2/inc/review.php)。虽然我使用完整的位置,但拒绝加载。 有谁知道如何让它工作?JQuery的.load和子域名
$("#resort").load("http://domain.com/v2/inc/review.php");
我想从一个子域(http://resort.domain.com)使用jquery加载文件(http://domain.com/v2/inc/review.php)。虽然我使用完整的位置,但拒绝加载。 有谁知道如何让它工作?JQuery的.load和子域名
$("#resort").load("http://domain.com/v2/inc/review.php");
使事情简短。您无法使用ajax加载远程域内容。这是所有浏览器应用的限制,称为Same origin policy。所以试图加载来自不同子域的数据已经违反了相同的原始策略。
你可以从不同的域中加载数据的唯一事情是使用JSON
@马特的评论:
我确实在想JSONP。这正是jQuery的使用的getJSON如果URL是一个远程服务器
从文档上:
如果指定的URL是一个远程 服务器上,该请求被视为
JSONP
代替。有关 的讨论,请参阅$.ajax()中的jsonp数据类型,以了解更多详细信息,请参阅 。
您正在运行浏览器执行来自不同域的ajax请求的安全限制。一种选择是通过当前域来代理您的请求。像Simple PHP Proxy这样的东西会为你工作。
使用document.domain是最具灵活性的最兼容的方法。
document.domain =“domain.com”;
这里是不同的跨域技术一个很好的总结陈述: http://www.slideshare.net/SlexAxton/breaking-the-cross-domain-barrier
但它是绝对重要的,没有人可以对域设置子域,因为如果他们可以,他们可以用它来捕捞数据。
技术上不正确。进行AJAX调用并返回JSON仍然会受到影响。也许你正在考虑JSONP? – Matt 2010-03-14 10:54:38
是的,我的意思是JSONP看到扩展的答案 – jitter 2010-03-14 11:28:27