2014-04-17 66 views
0

所以我試圖理解laravel中的路由,恐怕沒有太大的成功。我目前的問題是,我正在嘗試路由,以便可以從站點上的所有頁面訪問使用ajax檢查的登錄功能。目前我只能從我的索引中找到它。我用下面的laravel中的路由,解決ajax中的URL

Route::post('login', array('uses' => '[email protected]')); 

及以下的ajax:

$.ajax({ 
     type: "POST", 
     url: "<%= ResolveUrl("~/login") %>", 
     data: "username="+username+"&password="+password, 
     success: function(data) { 
      console.log(data) 
      if(data == 'Fel användarnamn eller lösenord.') { 
       document.getElementById('loginerror').innerHTML = data 
      } else if (data == 'Inloggad'){ 
       document.getElementById('loginerror').innerHTML = data; 
       window.location.reload(true); 
      } 

現在是我的理解,解決了這些URL將可能解決我的問題。然而,無論我操縱url部分,我都無法得到工作的決心。我只收到語法錯誤或錯誤的請求錯誤。如果有這樣的內容嵌入到laravel中,爲了獨立於URL中的更改獲取正確的路由,我將非常感謝此類功能的任何提示。我無法找到/理解任何可以解決我的問題的文檔。否則,如果有人可以告訴我如何正確編寫ResoleUrl,那也將不勝感激。然而,理解laravels路由可能會更好地爲我服務!事先感謝!

+0

這是一個AJAX'.blade.php'文件裏面? – user3158900

+0

ajax位於javscript文件中,鏈接到.blade文件中。 – Cevil

回答

4

改變你的AJAX網址:

url:"/login" 
+0

哇..那麼,我感謝你的!那種我正在尋找的exaclty!但是,它仍然不起作用,我得到了以下內容:POST http:// localhost/login 404(Not Found)。我是否需要改變路線本身中的某些東西? – Cevil

+0

@ user3084471沒有意識到你在本地主機上。假設你在一個子文件夾如'localhost/myapp'中工作?如果是這樣,那麼你可以'/ myapp/login'(它可以工作,但是如果你改變了子文件夾或者你沒有子文件夾,你將不得不改變它)。另一種方法是將laravel app/config/app.php中的域設置爲「basehost」,例如'localhost/myapp',然後使用內置的url解析器'URL :: to('login')' – Lee

0

在你的路線試試這個。

Route::any('login', ['uses' => '[email protected]', 'as' => 'login']); 
+0

你的提示。不幸的是它沒有工作。得到以下錯誤:POST localhost/login 404(Not Found) – Cevil

0

讓Laravel爲你做。

名稱路線......

Route::post('login', array('uses' => '[email protected]', 'as' => 'ajax.doLogin')); 

鏈接到在JavaScript中的名字你的路線......

url: "{{ URL::route('ajax.doLogin') }}", 
+0

你可以在外部JavaScript文件中做到這一點嗎?刀片能解決嗎? – Notflip

+1

不可以,但你可以把它放到視圖文件夾中一個新的'.blade.php'文件中,並通過刀片包含它@include('yourfile')' – user3158900