2011-09-27 161 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託管。 –

相關問題