2010-03-30 98 views
1

所以我遇到了這個問題。我試圖使用$ .get()與Drupal 6.16中的REST應用程序進行交互,該應用程序使用jQuery 1.2.6

我在桌面上有一個測試頁,我運行以下代碼,並且它成功運行警報。

url = 'http://api.twitter.com/1/help/test.xml'; 
    $.get(url, function(){alert("WORKING!!");}, 'xml'); 

但是,當我嘗試在Drupal中運行它時,警報從未達到。出於某種原因,該功能從未被觸發。

任何想法?

+1

哇...... 1.2.6已經夠老了,可以在博物館裏了。令人驚訝的Drupal不會讓它保持最新! – Matt 2010-03-30 22:56:14

+1

使用Firefox和Firebug並查看控制檯是否有任何JS錯誤。 – 2010-03-30 22:57:03

+0

我使用Firefox和Firebug,並且沒有錯誤。是的,這是一箇舊版本。看起來他們有與之相關的代碼,所以這就是爲什麼他們不更新它。無論如何,我在我的測試頁面中測試了舊的jquery,並且它工作正常。 – 2010-03-30 22:59:28

回答

2

所有我不得不說這是:

Same origin policy

概括地說,政策允許在訪問每個 其他的方法和屬性來自同一個站點始發 網頁運行 腳本沒有 特定的限制,但可以阻止 訪問不同網站上跨頁面的大多數方法和屬性 。

而這正是你想要做的。將ajax請求發送到不同的域,然後在腳本所在的位置。這不起作用,因爲相同的來源策略禁止跨域請求。

檢查是否提供jsonp api並閱讀jQuery.ajax()文檔如何使用/使jsonp跨域請求。現在很明顯,警報從來沒有達到,因爲調用不成功,jQuery因此不會調用您指定的成功回調。

+0

謝謝,抖動!我忘記了這個政策。 :)現在我可以從這裏開始:) – 2010-03-30 23:23:31