2011-01-05 84 views
0

在我的Javascript很重的Web應用程序中,我有一些使用標記加載到源HTML中的腳本,以及使用jQuery的ajax方法根據需要加載的其他腳本。來自CDN的Ajax腳本加載(使用jQuery)不起作用

我正在將應用程序的大部分靜態資產重定位到CDN(我正在使用AWS Cloudfront)。我的動態負載不再有效。 jQuery Ajax調用:

$.ajax({ 
    url: url, 
    dataType: 'script', 
    async: true, 
    success: function (content) { 
     .... 

觸發成功功能,但內容爲空。

我想知道是否這是因爲這樣的請求違反了瀏覽器的跨站腳本安全模型。如果是這樣的話,是否需要從CDN動態加載腳本? Ahhh ...我目前不在使用Cloudfront主機的CNAME別名。這樣做會解決這個問題嗎?

+0

什麼是您使用的網址? – Chandu 2011-01-05 23:41:06

+0

我還沒有這樣做,但我非常肯定,我需要使用指向我的Cloudfront的DNS設置CNAME,並告知Cloudfront有關CNAME的信息,以便它可以處理來自我的存儲庫的請求。 – Zhami 2011-01-07 01:06:27

+0

嗯,我有一個CNAME設置,但是因爲它是一個子域,所以它沒有幫助,因爲相同的來源策略不允許從子域加載腳本。 – Zhami 2011-01-08 13:48:06

回答

1

你是對的,這是跨站腳本安全防止這一點。

您可以使用jQuery.getScript()方法從外部域(或內部)加載它。

+1

jQuery.getScript使用jQuery.ajax,所以我仍然面臨同樣的問題。 – Zhami 2011-01-08 13:46:54