0

我正在尝试调用 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."}]
4

2 回答 2

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);
      }
    });
  }
});
于 2015-04-21T16:33:00.357 回答
0

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

于 2015-04-21T14:50:45.360 回答