WP REST API ERROR 401 При попытке получить изображение из wp: Featuremedia - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь получить избранное изображение из опубликованного сообщения, но это кажется невозможным! Я получаю сообщение об ошибке :( это код:

function fetchSlideShow(){
let endpoint = "http://loreleiheckmann.com/wordpress/wordpress/wp-json/wp/v2/Vinyls?_embed";
fetch(endpoint)
.then(e => e.json())
.then(showSlideShow);
}

function showSlideShow(data){
console.log(data);
data.forEach(showSingleSlide);   
showSlides();
}

function showSingleSlide(aSlide) {
let template = document.querySelector(".slide_template").content;
let clone = template.cloneNode(true);
console.log(aSlide);  
clone.querySelector("img").setAttribute("src", aSlide._embedded["wp:featuredmedia"] 
[0].media_details.source_url);

let SlideList = document.querySelector("#SlideList");
SlideList.appendChild(clone);
}

При переходе к массиву я вижу ошибку 401 :( и более того: не могу прочитать свойство 'source_url' of undefined «Я не знаю, что я» я делаю неправильно .. какие-нибудь идеи? ЗДЕСЬ ОШИБКИ -> 401 НА КОНСОЛИ + ПРОБЛЕМА С URL:

Ответы [ 2 ]

1 голос
/ 14 мая 2020

Кому это может быть интересно - В конце концов, я добавил изображение в WP по настраиваемому типу сообщения (я отказался от wp: Feature media - я не смог его получить). После этого я добавил код в JS -> b.querySelector (". img"). setAttribute ("sr c", a.acf.image.url); так работает :)

0 голосов
/ 08 мая 2020

Попробуйте изменить свой URL-адрес в переменной конечной точки:

let endpoint = "http://loreleiheckmann.com/wordpress/wordpress/wp-json/wp/v2/posts?per_page=20&_embed=wp:featuredmedia

Если вам нужно больше данных, вы можете добавить их через запятую:

wp-json/wp/v2/posts?per_page=20&_embed=wp:term,wp:featuredmedia

Публикация на странице не является обязательной, но я бы предпочел иметь этот набор.

И вы должны написать, какой размер изображения вам нужен. Таким образом rest api предоставит вам правильный URL-адрес источника:

_embedded['wp:featuredmedia']['0'].media_details.sizes.medium_large.source_url

Я думаю, что было бы лучше, если вы используете сертификат ssl, это бесплатно с помощью «Let's encrypt».

РЕДАКТИРОВАТЬ:

На скриншоте показано остальное сообщение api:

wp:featuredmedia: Array(1)
    0:
    code: "rest_forbidden"
    data: {status: 401}
    message: "Sorry, you are not allowed to do that."

Таким образом, код состояния 401 означает: неавторизованный

Похоже, что вы не разрешен доступ к данным через rest api.

Для этого может быть несколько причин:

  • Изображение прикреплено к неопубликованному сообщению. Сообщение может иметь статус «частный» или «черновик», и поэтому не публикуется c доступно.
  • Ваше сообщение (и прикрепленное изображение) недоступно для не авторизованных пользователей. Если есть ограничение на просмотр вашего кода, то это также относится и к rest api.
  • Возможно, вы используете какой-то плагин членства, который ограничивает wp rest-api. Попробуйте деактивировать все плагины, если один из них влияет на поведение.
  • Вы добавили некоторый собственный код, чтобы ограничить доступ к rest api.

Если у вас ничего не работает, вам следует изучить вашу базу данных и проверьте medias post_status.

Я думаю, что он работает нормально, но у вас нет доступа для просмотра данных сообщений. На это указывает ошибка 401.

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