jQuery ajax base auth работает только с внешних сайтов, но не с локального запроса - PullRequest
0 голосов
/ 26 мая 2018

Этот код работает при использовании на внешних сайтах (например, 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' ); ?>"

Спасибомного!:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...