如何在没有ember数据的情况下发送ember js头请求

时间:2015-04-21 11:16:09

标签: wordpress cookies ember.js http-headers wp-api

我正在尝试调用Wordpress的wp-api.org插件。我想显示所有用户,我想使用cookie身份验证。因此,我需要发送一个标题请求,如网站上所解释的那样:

options.beforeSend = function(xhr) {
    xhr.setRequestHeader('X-WP-Nonce', WP_API_Settings.nonce);

    if (beforeSend) {
        return beforeSend.apply(this, arguments);
    }
};

我在我的模型中使用以下代码:

App.UsersRoute = Ember.Route.extend({
  model: function() {
     return Ember.$.ajax({
          url: "http://myurl.com/wp-json/users/",
          type: "GET",
          dataType: "json",
          data: JSON.stringify({}),
          beforeSend:  xhr.setRequestHeader('X-WP-Nonce', WP_API_Settings.nonce);
        });


  }
});

网站返回此消息时,因为身份验证失败,但我已登录并设置了Cookie:

[{"code":"json_user_cannot_list","message":"Sorry, you are not allowed to list users."}]

2 个答案:

答案 0 :(得分:1)

这应该有效:

App.UsersRoute = Ember.Route.extend({
  model: function() {
   return Ember.$.ajax({
      url: "http://myurl.com/wp-json/users/",
      type: "GET",
      dataType: "json",
      data: JSON.stringify({}),
      beforeSend:  function(xhr) {
        xhr.setRequestHeader('X-WP-Nonce', WP_API_Settings.nonce);
      }
    });
  }
});

答案 1 :(得分:0)

beforeSend属性需要是传递xhr的函数,就像在第一个示例中一样,在第二个代码段xhr中将是未定义的。