WP REST API错误401尝试从WP:featuredmedia获取图像时



我正试图从我发布的帖子中获取特色图片,但这似乎不可能!我明白错误:(这是代码:

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:(此外:无法读取未定义的"我不知道我做错了什么……有什么见解吗?以下是控制台上的错误->401+URL问题。:

请尝试在端点变量中更改您的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证书,也会是更好的做法,有免费的"让我们加密"。

编辑:

您的屏幕截图显示了rest api消息:

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

所以401状态码的意思是:未经授权的

似乎不允许您通过rest api访问数据。

这可能有多种原因:

  • 图片附在一篇未发表的帖子上。该帖子可能具有"私人"或"草稿"的状态,因此无法公开发布
  • 未登录的用户无法使用您的帖子(以及附带的图像(。如果查看代码有限制,这也适用于rest api
  • 也许您正在使用某种限制wp-rest-api的成员插件。如果其中一个插件影响行为,请尝试停用所有插件
  • 您添加了一些自定义代码来限制访问rest api访问

如果什么都不适用,您应该查看数据库并检查媒体的postrongtatus。

我认为它工作得很好,但你没有权限查看帖子数据。这就是401错误所表明的。

它可能涉及的人-最后,我在WP中按自定义帖子类型添加了图像(我放弃了WP:featureed media-我无法获取它。(之后,我在JS->b.querySelector(".img"(.setAttribute("src",a.acf.image.url(中添加了一个代码;所以它起作用:(

最新更新