Intereting Posts
Вставить и количество слов не работает для экземпляра wp_editor Найти последнюю / опубликованную версию сообщения, используя wp-cli Дополнительный запрос WP на странице архива выдать при переводе wordpress их TinyMCE Autoresize Удаление пункта меню плагина WordPress для конкретного пользователя Возможность установки статической передней страницы исчезла из настроек чтения admin Почему моя страница тега не заполняется этим настраиваемым типом сообщений? Измените WP_Post перед обработкой Удаление категории из администратора WordPress полностью удаляет ее из базы данных? mce_external_languages: как это работает? У кого-нибудь есть плагин, который может автоматически помечать пользовательские типы сообщений в WordPress? Как вы используете класс загрузчика плагинов-плагинов для подбора действий и фильтров? использование цикла в пользовательской мета – это испортить «добавить новый» тип сообщения WordPress и WebRTC?

API WP REST создает проблему проверки подлинности

Я получаю ошибку 401 или 403 при попытке создать сообщение с переднего конца. Я использую угловой в интерфейсе, и я хочу использовать базовую авторизацию. Я выставил api и создал nonce:

wp_localize_script( 'angular-core', 'RestAPI', array( 'url' => get_bloginfo('wpurl').'/wp-json/wp/v2/', 'nonce' => wp_create_nonce( 'wp_rest' ) ) ); 

Затем я получаю эту форму в html:

 <form ng-submit="processForm()"> <!-- Title --> <div id="title_field" class=""> <label>Title</label> <input type="text" name="title" class="" placeholder="Name of item" ng-model="formData.title"> </div> <!-- Submit Button --> <button type="submit" class=""> <span class=""></span> Submit! </button> </form> 

И это функция processForm в моем контроллере:

 $scope.formData = {}; //stores input from form above $scope.processForm = function() { console.log(RestAPI.nonce); $http({ method: 'POST', url: '/wp-json/wp/v2/posts', params: $scope.formData, transformRequest: angular.identity, headers: { 'Content-Type': 'multipart/form-data', 'X-WP-Nonce': RestAPI.nonce } }) .success(function (result) { console.log('Success!'); }).error(function () { console.log('Fail!'); }); }; 

Добавление части X-WP-Nonce в заголовки – это то, что меня от 401 до 403 ошибки, а затем просто говорит мне, что значение nonce недействительно. Если это имеет значение, во время входа в панель администратора, если я зашел на сайт и попытаюсь получить доступ к пользователям / мне (о которых я знаю, есть проблемы, перечисленные в документации), я просто выхожу из системы и неоднократно просил войти в систему. Может быть, я не понимаю, как использовать nonce?

Любая помощь приветствуется!

Solutions Collecting From Web of "API WP REST создает проблему проверки подлинности"

Это старый вопрос, но текущий REST API указывает, что заголовок X-WP-NONCE должен быть установлен через beforeSend вызов beforeSend . Ниже перечислены документы API REST API .

 .ajax( { url: wpApiSettings.root + 'wp/v2/posts/1', method: 'POST', beforeSend: function ( xhr ) { xhr.setRequestHeader( 'X-WP-Nonce', wpApiSettings.nonce ); }, data:{ 'title' : 'Hello Moon' } } ).done( function ( response ) { console.log( response ); } ); 

Вы можете удалить свойство headers , выполнив вышеуказанное и используя свойство contentType . То есть, если вы используете функцию $.ajax .

 $scope.formData = {}; //stores input from form above $scope.processForm = function() { console.log(RestAPI.nonce); // using $.ajax not $http $.ajax({ method: 'POST', url: '/wp-json/wp/v2/posts', data: $scope.formData, transformRequest: angular.identity, contentType: 'multipart/form-data', beforeSend: function( xhr ) { xhr.setRequestHeader( 'X-WP-Nonce', RestAPI.nonce ); }, success: function (result) { console.log('Success!'); }, error: function () { console.log('Fail!'); } }); };