我正在尝试调用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."}]
答案 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
中将是未定义的。