加载不适用于某些网址

时间:2011-09-27 09:14:08

标签: jquery load

我使用的网络服务可以让我轻松创建联系表单并为我管理消息。我有这个直接的链接,工作正常,并打开一个新的页面与联系表格。

这是链接: http://apps.cyberth.com/webform/?event=form.show&formId=8957&key=B5220027CF

我在我的网站中使用jQuery将页面加载到div和网站上的其他地方这段代码工作得很好:

$('#news').load("news.html #news");

但是使用几乎相同的代码片段与url格式不再有效:

$("#contactForm").load("http://apps.Cyberth.com/webform/?event=form.show&formId=8957&key=B5220027CF");

导致这种情况的原因是什么?我读到这可能是一个安全问题,阻止jQuery Ajax加载未存储在本地服务器上的页面。

此外,我如何才能确定未来的问题?

2 个答案:

答案 0 :(得分:2)

由于同源策略,浏览器不允许跨域请求。

一种方法是建立一个网络代理,例如

从客户端调用您的服务器代理,如

$.ajax({
url:'/your/domain',
//other params
success:function(data){
//data received that is sent by the server
}
});

在您的服务器端,您正在使用的语言/技术向所需服务发出请求,如果是http://apps.Cyberth.com/webform/?event=form.show&formId=8957&key=B5220027CF 然后将响应发送给客户端。

这里有一些有用的链接

http://devlog.info/2010/03/10/cross-domain-ajax/

http://json-p.org/

http://msdn.microsoft.com/en-us/library/dd573303%28v=vs.85%29.aspx

http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-cross-domain-ajax-request-with-yql-and-jquery/

http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/

答案 1 :(得分:0)

出于安全原因,AJAX无法跨域。