2012-08-10 25 views
0

開始玩Ember.js和餘燼數據。我遵循這個tutorial,它引導你創建一個Twitter時間表節目。 它非常整潔,但它不使用ember-data,這對我來說是處理REST API的好方法。Ember.js和餘燼數據使用外部(另一個域)API

在我的操場上,我創造了這樣的事情:

EmberTwitter.Tweet = DS.Model.extend({ 
    avatar: null, 
    screen_name: null, 
    text: null, 
    date: null, 
    url: "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=naoj_gior" 
}); 

var tweets = EmberTwitter.store.findAll(EmberTwitter.Tweet); 

我想知道,如果燼數據準備與外部的API(工作以及它如何與同源策略交易.. ),因爲在我看來,在看到文檔後,事實並非如此。我在控制檯中看到以下錯誤:

Resource failed to load: file:///tweets 

什麼是使用ember.js獲取外部API的好方法?

回答

0

你是對的 - 因爲它在你的瀏覽器中運行,它受制於與其他庫/普通JS相同的規則。你將不得不使用某種服務器代理來傳遞你的請求(一個PHP腳本等)。

你可以看到這種代理(用PHP編寫)的例子在這裏: http://www.daniweb.com/web-development/php/code/216729/php-proxy-solution-for-cross-domain-ajax-scripting

總的想法是,你只要使用你的服務器發出請求代表的Javascript和echo出來。

它也看起來像有人使用IFrame來達到相同的目的。以下示例也是Ember.js,因此它可能適用於您: http://eng.netwallet.com/2012/04/17/simple-cross-domain-ajax-with-a-wormhole-5/

+0

Andrew感謝您的回答。我知道在jQuery中使用getJSON並使用回調?是可能的,所以我只是想知道如何使用ember-data模型來做到這一點。 – Nobita 2012-08-10 05:10:22

+0

是的,Twitter可以與JSONP一起工作。對於任何人不知道這一點(看起來像你),如果你使用問號作爲回調和'$ .getJSON',jQuery應該替換你的名字:http://jquery-howto.blogspot。 COM/2009/04/Twitter的jsonjsonp-API url.html。我對Ember不太熟悉,無法適應這種情況,但其他人可能會提供幫助。 – 2012-08-10 05:13:40

相關問題