如何在我的ember应用程序中传递api密钥作为url的一部分

时间:2014-04-18 19:45:38

标签: ember.js

我有一个使用API​​的ember应用程序。我的API需要在URL中发送API密钥,如...

myJunk.com/api/v1/shots?api_key=d26da3938adc5f3c8604256194c18501

这是我正在努力工作的余烬代码......

App.Person = Ember.Model.extend({
  name: Ember.attr()
});

App.Person.adapter = Ember.RESTAdapter.create();
App.Person.url = "http://myJunk.com/api/v1/shots?api_key=d26da3938adc5f3c8604256194c18501";
App.Person.collectionKey = "shots";

我遇到的问题是'.json'被附加到URL。这是我在chrome中得到的错误......

XMLHttpRequest cannot load http://myJunk.com/api/v1/shots?api_key=d26da3938adc5f3c8604256194c18501.json.

看起来这是一个知道issue ...

在ember中执行此操作的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

看起来该修补程序尚未进入发布版本。见github评论......

https://github.com/ebryn/ember-model/issues/300

答案 1 :(得分:0)

我在ApplicationAdapter中执行此操作,如下所示:

ajaxOptions: function(url, type, hash) {
    if(window.ENV.api_key) {
        if(hash === undefined) {
            hash = {data: {api_key: window.ENV.api_key}};
        } else {
            if(hash.data) {
                hash.data.api_key = window.ENV.api_key;
            } else {
                hash.data = {api_key: window.ENV.api_key};
            }
        }
    } else {
        Ember.Logger.debug('no api key');
    }
    return this._super(url, type, hash);
}

将当前用户的API密钥存储在ENV.api_key中。这样就可以插入所有请求,POST或GET。