.htaccess - woocommerce rest api put 请求中的 403 错误
问题描述
我正在使用 nodeJS 和 woocommerce 作为后端来开发 Ionic 项目。当我尝试使用以下代码修改用户时,出现 403 禁止错误!(user_id 143 存在于我的 woocommerce 中)
this.WooCommerce = WC({
url: "https://mmarket.ir",
consumerKey: "ck_bd5########################fa",
consumerSecret: "cs_b9######################c7",
wpAPI: true,
version: 'wc/v3'
});
var data = {
first_name: 'James'
};
this.WooCommerce.put('customers/143', data, function(err, data, res) {
console.log(res);
});
结果:
PUT https://mmarket.ir/wp-json/wc/v3/customers/143 403 (Forbidden)
passwordreset.ts:152 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /wp-json/wc/v3/customers/143
on this server.<br />
</p>
</body></html>
我的 .htaccess 文件内容:
Header add Access-Control-Allow-Origin: "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Header add Access-Control-Allow-Headers: "Content-Type"
# BEGIN WordPress
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
# END WordPress
任何想法?
解决方案
我使用以下代码编辑我的 .htaccess:
<Limit GET POST PUT OPTIONS>
Require all granted
</Limit>
<LimitExcept GET POST PUT OPTIONS>
Require all denied
</LimitExcept>
并且 403 错误在 put 请求中消失了。 PUT 请求 403 禁止
推荐阅读
- python-3.x - 如何从另一列的截断值填充数据框中的一列
- apache-spark - 将数据从 Spark 结构化流加载到 ArrayList
- spring-boot - Spring Boot 应用程序中的 Swagger2 不会使用自定义 Docket 获取 @ApiResponses
- django - Django迁移删除和更新
- linux - 如何在 ubuntu 上的 /var/www 中创建目录?设置权限
- visual-studio - MDX 查询在 SSMS 中有效,但在 Visual Studio 中无效
- c# - 从控制器检索数据并返回 ajax 调用失败
- jquery - 单击菜单容器外部时如何关闭下拉菜单?
- android - Android 游戏和其他基于引擎的复杂应用程序如何通过 - 或以其他方式处理 - 进程死亡来保持状态?
- loops - SAS 宏执行循环问题