gpt4 book ai didi

php - Wordpress REST API 自定义帖子类型 禁止删除访问

转载 作者:行者123 更新时间:2023-12-01 01:31:18 25 4
gpt4 key购买 nike

我在 WordPress 中遇到以下问题。

我创建了一个名为“coursenote”的新自定义帖子类型。我正在使用 REST API 进行 Ajax 调用(使用 jQuery)。创建新帖子和更新帖子工作正常,但删除不起作用。

我的自定义帖子类型定义:

register_post_type( 'coursenote',
[
'labels' => [
'name' => __( 'User notes' ),
'singular_name' => __( 'User note' ),
],
'public' => false,
'show_in_menu' => true,
'show_ui' => true,
'show_in_rest' => true,
'rest_base' => 'usernote',
'has_archive' => false,
'supports' => array(
'page-attributes',
'title',
'editor',
'author',
),
]
);

自定义帖子类型的 REST URL 为“http://.../usernote ”。我可以阅读、发帖和更新,但无法删除帖子。删除应该通过 http://.../usernote/[id]/ 上的 DELETE 方法进行。 (请参阅 Wordpress documentation ),但我收到 403 禁止 消息。

这是 jQuery Ajax 代码:

ajaxRequestUserNotes = jQuery.ajax({
method: 'DELETE',
url: "http://.../usernote/" + id + '?force=true',
beforeSend: function (xhr) {
xhr.setRequestHeader('X-WP-Nonce', nonce);
},
success: function (result) {
console.log(result);
}
});

如您所见,还设置了身份验证 header (就像这样,它正在处理新帖子和更新帖子)。

我在这里缺少什么?

最佳答案

我发现了问题。这是一个配置错误的 Apache 服务器。

error.log 显示以下错误:

[authz_core:error] [pid 13102] [client ::1:44796] AH01630: client denied by server configuration:

因此,我检查了服务器配置并在 Apache 配置中发现了以下 block :

<Limit GET POST OPTIONS>
Require all granted
</Limit>
<LimitExcept GET POST OPTIONS>
Require all denied
</LimitExcept>

如您所见,缺少“DELETE”。您需要像这样添加它:

<Limit GET POST OPTIONS DELETE>
Require all granted
</Limit>
<LimitExcept GET POST OPTIONS DELETE>
Require all denied
</LimitExcept>

我希望这对其他人有帮助。

关于php - Wordpress REST API 自定义帖子类型 禁止删除访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51089309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com