2017-01-22 12 views
2

laravelの新機能です。私はaraxを使用してajax呼び出しを使用してapiを作成したい。しかし、私はajax呼び出しを要求します、urlは無効なサーバーパスを示します。ここで は私のコードは
マイルートファイルです:Laravel AjaxがコントローラにURLを呼び出します

Route::get("a/b","[email protected]"); 

私のjsファイル:

var base = "public/index.php"; 
var url = base + "a/b"; 
$.ajax({ 
    url : url, 
    dataType: "json", 
    timeout: 10000, 
    error:function(){ alert("Error getting from server") } 
}).done(function(resp){ 

}); 

は、私は、次のURLにいると仮定します。

domain.com/dev/lar/public/index.php/c/d 

それから私は、その後、このAJAXを呼び出しますURLは

domain.com/dev/lar/public/index.php/c/public/index.php/a/b 
にリダイレクトされます

ここlarがあなたは、コントローラの宣言に欠けている私のlaravelアプリフォルダ

** Note I am using NGINX server. My Server Admin do not rewrite this url. That's why I use public/index.php ** 
+0

このコードルートを試してみてください::( "/ A/B"、 "AControllerする@ C")を取得する必要があります。ルート:: get( "a/b"、 "AController @ c")の代わりに。 –

+0

私のアプリのフォルダはドメインの後にたくさんのサブフォルダがあるので、このルートは機能しません。 ex- domain.com/dev/{laravel app folder} – Alien

+0

domain.com/dev/lar/public/index.php/c/d domain.com/dev/lar/public/c/dを使用している理由index.phpをディレクトリではなくファイルにする??? –

答えて

1

です。最初はバックスラッシュを使用する必要があります。例えば

Route::get("https://stackoverflow.com/a/b","[email protected]"); 

そして、あなたのAjaxコードのURLでは

var base = "domain.com/dev/lar/public/index.php"; 
var url = base + "https://stackoverflow.com/a/b"; 
+0

問題はあなたのベースURLのajaxにあったと思います。私はコードを更新しました。これを試してください –

+0

あなたは正しいです。私はこの方法を知っていた。自分のサーバーのベースパスを自分のコードで修正したくないのです。コードのベースURLパスを修正するのは悪い習慣です。ドメインを変更した場合、コードを変更したい – Alien