2017-01-22 2 views
2

Ich bin neu in Laravel. Ich möchte eine API mit Laravel mit Ajax-Aufruf erstellen. Aber ich beantrage Ajax Anruf, URL zeigt ungültigen Serverpfad an. Hier ist mein Code
Meine Strecke Datei:Laravel Ajax Aufruf URL zum Controller

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

Meine js-Datei:

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){ 

}); 

nehme an, ich bin in folgenden Webadressen:

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

Dann rufe ich diese Ajax, dann URL wird zu

domain.com/dev/lar/public/index.php/c/public/index.php/a/b 
umleiten

Hier lar ist mein Laravel app Ordner

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

Versuchen :: get ("/ a/b", "AController @ c"); anstelle von Route :: get ("a/b", "AController @ c"); –

+0

Diese Route funktioniert nicht, da mein App-Ordner viele Unterordner nach Domänen enthält. ex-domain.com/dev/{laravel App-Ordner} – Alien

+0

Warum verwenden Sie domain.com/dev/lar/public/index.php/c/d nicht domain.com/dev/lar/public/c/d. Sie machen index.php ein Verzeichnis nicht eine Datei ??? –

Antwort

1

Sie sind in der Steuerung Erklärung fehlt. Sie müssen zuerst den Backslash verwenden. Zum Beispiel

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

Und in Ihrem Ajax-Code url sollten

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

Ich denke, das Problem war in Ihrer Basis-URL von Ajax. Ich habe den Code aktualisiert. versuchen Sie dies –

+0

Sie haben Recht. Ich kannte diese Methode. aber ich möchte meinen Server-Basispfad nicht in meinem Code ändern. Es ist eine schlechte Übung, den Basis-URL-Pfad im Code zu fixieren. Wenn ich meine Domain ändere, möchte ich meinen Code ändern – Alien

Verwandte Themen