2013-04-27 47 views
0

我無法使用jQuery的Blade視圖使用Ajax。正如我研究過的,它就像平常一樣簡單地使用函數$.get$.post,並將第一個參數作爲適當的根。如果我做的:AJAX不與Laravel合作4

應用程序/視圖/家庭/ index.blade.php

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
{{Form::button("d",["id"=>"d"])}} 
<script> 
    $("#d").on("click",function(){ 
     $.post("/ajax",function(d){ 
      console.log("d"); 
     }); 
    }); 
</script> 

應用程序/ routes.php文件

Route::post("/",['as'=>'ajax'],function(){ 
    return 'returned form route'; 
}); 

我一直在服用500內部服務器錯誤,如果我嘗試使用get請求,則會出現同樣的情況也做成:

$.post("{{{route('ajax')}}}",function(){ ... 

但也不起作用。

我已經意識到問題是我有一個額外的http://在開始時不應該在那裏。我怎麼能採取適當的本地主機:8000使它也在服務器上工作?

同時檢查了邁克爾卡爾金斯的視頻How to submit ajax with Laravel video但我想我已經做了同樣的工作,仍然沒有工作。

如果我將整個URL(localhost:8000 /)作爲路由寫入,我會從這個地址獲取安全錯誤的跨源請求和appart,但很明顯,這不是最佳解決方案。

+0

500表示發生服務器錯誤。爲了解決_什麼錯誤,你應該有一些日誌。檢查你的PHP日誌,或者Laravel提供的功能。或者,在這個框架中是否有一個調試模式,這樣你就可以在屏幕上看到錯誤? – halfer 2013-04-27 18:48:59

回答

3

從細節發佈,它看起來像你做一個POST路線GET,嘗試改變

Route::post("/",['as'=>'ajax'],function(){ 

Route::post("/ajax", ['as'=>'ajax', function() 
{ 
    // Your code... 
}]); 

或者從一個$不用彷徨改變AJAX來POST

+1

謝謝,這是我的錯誤把代碼放在這裏,我編輯它顯示它是如何,這個問題仍然存在。問候。 – Joss 2013-04-27 17:55:17

+0

你有沒有嘗試改變路線,我有它?檢查閉包的位置,你的示例在數組外部有閉包,並且我知道它需要在數組中,所以「Route :: post(」/「,['as'=>'ajax'],函數(){「變成」Route :: get(「/」,['as'=>'ajax',function(){「 – Safeer 2013-04-27 18:25:15

+0

剛剛檢查了[源代碼](https://github.com/laravel/ framework/blob/master/src/Illuminate/Routing/Router.php#L145),這是因爲該方法調用不正確,要解決它只是將封閉像Route :: post(「/ ajax」,['' as'=>'ajax',function(){ – Safeer 2013-04-27 18:33:58