Этот код работает при использовании на внешних сайтах (например, jsfiddle.net)
, но не при использовании на самом моем сайте:
var $ = jQuery;
var makeBaseAuth = function(user, pswd){
var token = user + ":" + pswd;
var hash = "";
if (btoa) {
hash = btoa(token);
}
return "Basic " + hash;
};
var settings = {
"crossDomain": true,
"url": "http://mywebsite.org/wp-json/wp/v2/settings",
"method": "GET",
"headers": {
"authorization": makeBaseAuth("admin", "mypassword")
}
}
$.ajax(settings)
.done(function(response){
console.log(response);
})
.error(function(err){
console.log(err);
});
Я получаю эту ошибку
responseText: "{" code ":" rest_forbidden "," message ":" У вас нет прав для этого. "," Data ": {" status ": 401}}"
statusText: "Unauthorized"
Я пытался использовать "crossDomain": false
, но безуспешно ...
Почему это не работает?Как я могу заставить его работать также из локального запроса?
Обновление: Благодаря вашим предложениям я решил, добавив этот заголовок:
"X-WP-NONCE": "<?php echo wp_create_nonce( 'wp_rest' ); ?>"
Спасибомного!:)