当前位置: 首页 > 知识库问答 >
问题:

发布请求时Woocommerce rest api签名无效(错误401)

常睿范
2023-03-14

我正在为一家伍迪商店做一个离子2项目。我在我的应用程序中使用WooCommerce REST API,并使用PostmanChrome应用程序使用OAuth-1.0测试API。我收到了GET请求的正确响应,但对于POST请求,我收到了签名不匹配的错误,因为:

{
  "code": "woocommerce_rest_authentication_error",
  "message": "Invalid Signature - provided signature does not match.",
  "data": {
    "status": 401
  }
}

共有1个答案

邬友樵
2023-03-14

我为此纠结了几天(使用angular ),最终发现这是CORS的问题。浏览器实际上发送了一个选项请求,woocommerce-api以GET的形式接收该请求。使用此工具有助于故障排除。

最后通过设置我的.htaccess解决了它,如下所示;

RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L,E=HTTP_ORIGIN:%{HTTP:ORIGIN}]]
Header set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Credentials "true"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "X-Requested-With, Content-Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"

您可以参考此答案以获取详细说明

 类似资料:
  • 问题内容: 我正在使用$ resource并缓存get请求的结果。我的问题是,在发布请求后,缓存不会失效。 这是服务的返回值: 这是我在控制器内部使用的保存方法。如您所见,我正在对post请求使用回调,以重新计算名词的查询/列表。 我想在调用post或其他非get方法后使缓存无效。我该怎么办?这是否已经内置在$ resource中,还是我需要自己实现? 问题答案: 您可以创建包装器服务以根据需要进

  • 我在Maven构建期间收到此错误。 无法执行目标组织。阿帕奇。专家插件:maven shade插件:2.4.3:项目dl4j上的shade(默认)示例:创建着色jar时出错:无效的LOC头(错误签名)- 这是我的pom。xml文件。 我多次尝试删除jar文件,但似乎都不起作用。

  • 我正在使用实现一个联系人应用程序。现在,我正试图通过发送以下格式的put请求来更新联系人 我将XML作为字符串发送,作为请求的主体。这是我的xmlString(请求主体) 我写了下面的代码来发送更新联系人的PUT请求。 当我试图在中发送请求时,联系人更新成功。但是当我试图运行上面的程序时,我得到了 400错误请求错误 我不知道我哪里出错了。任何帮助都将不胜感激!

  • 我无法将localhost与xamarin.android应用程序一起使用。我在Chrome浏览器上执行过Web项目和服务项目(不是移动应用程序)。 显示的端口号我尝试在Android Studio模拟器和Genymotion模拟器中分别添加10.0.2.2:&10.0.3.2:浏览,结果是Bad Request-Invalid hostname。甚至我也试过服务项目端口号,都不行。 Web项目:

  • > 。 有些帖子说x509是用来生成自签名证书的。 但使用时出错: 请告诉我哪条路是正确的。如果是正确的,如何解决错误?非常感激!