0

Wordpress REST API を使用していますが、次の問題があります。

「POST」または「DELETE」リクエストを作成しようとすると、「wp-json/wp/v2/posts」などの標準エンドポイントでも 401 エラーが発生します。

ローカルでは問題なく動作しますが、私の Web サーバーでは動作しません。

サーバーに「POST」リクエストを送信しようとしたときの応答は次のとおりです。

{
  "code": "rest_cannot_create",
  "message": "Sorry, you are not allowed to create new posts.",
  "data": {
      "status": 401
  }
}

...そしてヘッダー:

Access-Control-Allow-Credentials →true
Access-Control-Allow-Headers →Authorization
Access-Control-Allow-Methods →POST, GET, OPTIONS, PUT, DELETE
Access-Control-Allow-Origin →
Access-Control-Expose-Headers →X-WP-Total, X-WP-TotalPages
Age →0
Allow →GET
Connection →keep-alive
Content-Length →111
Content-Type →application/json; charset=UTF-8
Date →Wed, 06 Apr 2016 13:59:45 GMT
Server →Apache
X-Content-Type-Options →nosniff

ローカルサーバーからの「wp-json/wp/v2/posts」に対する「POST」リクエストのヘッダーは次のとおりです。

Access-Control-Allow-Credentials →true
Access-Control-Allow-Headers →Authorization
Access-Control-Allow-Methods →POST, GET, OPTIONS, PUT, DELETE
Access-Control-Allow-Origin →
Access-Control-Expose-Headers →X-WP-Total, X-WP-TotalPages
Allow →GET, POST
Cache-Control →no-cache, must-revalidate, max-age=0
Connection →keep-alive
Content-Type →application/json; charset=UTF-8
Date →Wed, 06 Apr 2016 13:57:19 GMT
Expires →Wed, 11 Jan 1984 05:00:00 GMT
Last-Modified →
Location →http://seebook.dev/wp-json/wp/v2/posts/25
Pragma →no-cache
Server →nginx
Transfer-Encoding →chunked
X-Content-Type-Options →nosniff
X-Powered-By →PHP/5.5.9-1ubuntu4.14

ご覧のとおり、ローカルでは「GET」と「POST」の両方が許可されていますが、サーバーでは「GET」のみが許可されています。

どこに問題があるのか​​ わかりますか?

4

1 に答える 1

0

何時間もの検索の末、この問題を修正することができました!

問題は、次の mod_rewrite ルールが .htaccess にないことでした。

# BEGIN WP BASIC Auth
<IfModule mod_rewrite.c>
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
</IfModule>
# END WP BASIC Auth

ここでスニペットを見つけました: https://stackoverflow.com/a/36499422/3754201

乾杯

于 2016-04-12T20:52:55.750 に答える