2017-11-29 8 views
0

CakePHP 3.xアプリがあり、AJAXからいくつかのAPIが呼び出されています。 AJAXでAjaxを呼び出すときにベースURLが変更される

私はそうのようなURLを呼び出します。

私のURLはそうアヤックスのURLが

http://localhost:8090/currentpage/users/id/ ようしかしです http://localhost:8090/users

..です

url: 'user/id/' + id, 
method: 'get', 
dataType: 'json' 
// ... 

その他、各種何らかの理由でURLがhttp://localhost:8090/users/id/

に変更されることがあります

変更する必要はありますか? 何が起こっていますか?

+0

"時には"実際に何を意味するのか把握してください。特定のページでのみ、または特定の操作の後に発生した場合、それらの領域を見ることができます。 –

答えて

0

これは、URL内のアクション(パラメータ)が原因で発生しています。

ここにいくつかの例がありますので、よりよく理解できます。

プロジェクトのすべてのページへのリンクがあるとします。

このリンクを新しいユーザーを追加するには、ここ をクリックして、この問題を修正先頭に「/」を使用して、Webルートからのパスを提供するために、あなたの現在のURLに応じて、

Current URL          URL generate by LINK 
localhost/products (here index is the method) localhost/users/add 
localhost/products/add       localhost/products/users/add 
localhost/products/edit/1       localhost/products/edit/users/add 

を別のURLを作成します。

+1

これは本当に役に立ちました!ありがとうございました (: – Olzkpex

0

他の回答は正しいと思います。

私がよくやっているのは、JavaScriptの変数でCakePHPから返されたウェブルートを保存する方法です。テンプレートファイルのヘッダにこれを行うことにより、それはどこでも利用できるようになります:

url: webroot + "user/id" + id //... 

を今すぐ:

<!-- src/Templates/Layout/default.ctp --> 
<head> 
    <script> 
     var webroot = <?= $this->request->webroot ?> 
    </script> 
</head> 

JavaScriptから発生したとしてあなたは、Ajax呼び出しを作成するには、このURLを使用する場合あなたのアプリケーションがWebサーバー上のどこに置かれているかにかかわらず、呼び出しは期待通りに行われます。

関連する問題