2017-12-31 93 views
0

私は私のwordpressでjsonエンドポイントを持っています。私はurlとpostでパラメータを送信する必要があります。ポストajaxは、末尾にバックスラッシュを使用してのみ動作します

これは動作します:http://<mydomain>/wordpress/?my_action=getBooks

これではない:私はバックスラッシュせずに送信する場合http://<mydomain>/wordpress?my_action=getBooks

ポストパラメータは、サーバ側で不足しています。 なぜこのバックスラッシュが必要なのですか?

jQuery.ajax({ 
      url: 'http://<mydomain>/wordpress/?my_action=getBooks', 
      method: 'POST', 
      data: {test: 'abc' }, 
     }).done(function (data) { 
      <do something> 
     }.bind(this)); 

答えて

0

これはバックスラッシュではなく、スラッシュです。バックスラッシュは後方に傾き(\)、前方スラッシュは前方に傾く(/)。

Wordpressはデフォルトで後続のスラッシュを使用して書き換えます。私はあなたの.htaccess(あなたがApacheを使用していると仮定して)を調整するとこれを削除するべきだと思います。

これはテストしていませんが、動作する可能性があります。

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.php$ - [L] 

    RewriteRule (.+)/$ $1 [R=301,L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
</IfModule> 
関連する問題