2011-09-27 89 views
0

我使用了Web服务,可以轻松创建联系表单并为我管理邮件。我有他们的直接链接,工作正常,并与联系表格打开一个新的页面。加载不适用于某些网址

这是链接: 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加载未存储在本地服务器上的页面。

另外我该如何隔离未来的问题?

回答

0

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

+0

其实它可以(见[CORS](http://www.w3.org/TR/cors/)),但你需要一个相当现代的浏览器,而遥远的领域必须合作。 – Tgr

2

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

一个方法是让Web代理,如

调用从客户喜欢

$.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/

+0

您能否详细说明我如何在'服务器端'提出'请求'。我相对缺乏经验,并且一直把我所有的代码放在客户端。 –

+0

你正在使用什么服务器端技术 – Rafay

+0

请原谅我的无知。我不知道。我注册了服务器空间来建立我的网站,并从那以后一直由doteasy.com托管。 –

相关问题