【问题标题】:Ember.js and ember-data to work with external (another domain) APIEmber.js 和 ember-data 与外部(另一个域)API 一起使用
【发布时间】:2012-08-10 05:04:45
【问题描述】:

开始使用 Ember.js 和 ember-data。我关注了这个tutorial,它指导你创建一个 Twitter 时间线节目。 它非常简洁,但不使用 ember-data,在我看来这是处理 REST 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);

我想知道 ember-data 是否准备好与外部 API 一起使用(以及它如何处理 Same Origin Policy...),因为在我看来,在查看文档之后, 那不是。我在控制台中看到以下错误:

Resource failed to load: file:///tweets

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

【问题讨论】:

    标签: javascript ember.js same-origin-policy ember-data


    【解决方案1】:

    你是对的——因为它在你的浏览器中运行,它与所有其他库/普通 JS 一样遵守相同的规则。您将不得不使用某种服务器代理来传递您的请求(PHP 脚本等)。

    您可以在此处查看此类代理(用 PHP 编写)的示例: http://www.daniweb.com/web-development/php/code/216729/php-proxy-solution-for-cross-domain-ajax-scripting

    一般的想法是,您只需使用您的服务器代表 Javascript 发出请求并将其回显。

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

    【讨论】:

    • 安德鲁感谢您的回答。我知道在 jQuery 中使用 getJSON 并使用回调?是可能的,所以我只是想知道如何使用 ember-data 模型来做到这一点。
    • 是的,Twitter 确实可以使用 JSONP。对于不知道这一点的任何人(似乎你知道),如果你使用问号作为回调和$.getJSON,jQuery 应该为你替换名称:jquery-howto.blogspot.com/2009/04/…。我对 Ember 不够熟悉,无法适应这一点,但其他人也许可以提供帮助。
    猜你喜欢
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    相关资源
    最近更新 更多