2013-11-24 141 views
0

我有這樣一個JavaScript,這將調用兩個不同的控制器在兩個不同的情況.... 現在的問題是它是一個獲取方法和一個是銷燬方法...當生成調用時,控制器功能從未觸發。不知道URL方法是否正確。這是給500錯誤。從ajax請求調用laravel控制器與get/put/delete方法

我也不確定控制器的迴應。但在此之前,我需要在控制器中執行數據庫操作......這不會執行。提前感謝您的幫助:)

下面

JS代碼: - >

function follow_or_unfollow(id,action) 
{ 
    //var dataString = "id=" + id; 
    if(action == "follow") { 
     myUrl = "{{ action('[email protected]', 'id') }}" ; 
     myMethod = "GET"; 
    } 
    else 
    { 
     myUrl = "{{ action('[email protected]', 'id') }}" ; 
     myMethod = "DELETE"; 

    } 
    var dataString = "id=" + id; 
    $.ajax({ 
     type: myMethod , 
     url: myUrl, 
     //data: dataString, 
     beforeSend: function() 
     { 
      if (action == "following") 
      { 
       $("#following"+id).hide(); 
       $("#loading"+id).html('<img src="loading.gif" align="absmiddle" alt="Loading...">'); 
      } 
      else if (action == "follow") 
      { 
       $("#follow"+id).hide(); 
       $("#loading"+id).html('<img src="loading.gif" align="absmiddle" alt="Loading...">'); 
      } 
      else { } 
     }, 
     success: function(response) 
     { 
      if (action == "following"){ 
       $("#loading"+id).html(''); 
       $("#follow"+id).show(); 

      } 
      else if (action == "follow"){ 
       $("#loading"+id).html(''); 
       $("#following"+id).show(); 
      } 
      else { } 
     }, 
     error : function(xhr, textStatus, errorThrown) { 

        if (xhr.status == 500) { 
         alert("Error 500: "+xhr.status+": "+xhr.statusText); 

        } else { 
         alert("Error: "+xhr.status+": "+xhr.statusText); 

        } 
       }, 
       complete : function(xhr, textStatus) { 

         allert('ok'); 

       } 

    }); 
} 
</script> 

1日編輯

拿到一分Firefox的工具清理後(由Chinnu的建議)

它表示

`[18:38:47.658] GET http://localhost/ffdd/public/follows/id [HTTP/1.1 500 Internal Server Error 230ms]` 

那手段!該id沒有被生成爲數字或id變量,它只是作爲「id」字符串。現在需要一個特定的解決方案,如何發送id的值....在控制器通過JS。

第二編輯

如果我把數字或ID的價值,而不是通過「ID」,這意味着如果id的值可以直接打印有它的工作提到這一點的。更簡單的方法是什麼?

myUrl = "{{ action('[email protected]', <the value of id>) }}" ; 

回答

0

的請求,使( 「POST」 或 「GET」)的type,默認是 「GET」。注意:其他HTTP請求方法(如PUT和DELETE)也可以在此處使用,但它們不受所有瀏覽器支持。

編號:http://api.jquery.com/jQuery.ajax/

注:您可以能使用在Firefox工具 - 發現這個錯誤> Web開發 - >錯誤控制檯或CTRL + SHIFT + J

+0

感謝您的回覆兄弟! 這很好。但是如果我們在這裏考慮get或post方法,那也沒有被觸發到控制器!你能在這個JS代碼中找到任何錯誤嗎? –

+1

Firefox Tools-> Web Developer - >錯誤控制檯或CTRL + SHIFT + J –

+0

您的代碼顯示 - 錯誤:405:方法不允許 –

0

您試圖訪問PHP幫助器函數中的javascript變量將無法工作。我不知道什麼是合格ID進入該功能,但如果它被傳遞到通過PHP的觀點,那麼你應該使用{{ action('[email protected]', array($id)) }}

如果它沒有被傳遞到視圖,那麼你將不得不使用myUrl = '/follow/'+id,使確保你有GETDELETE的路線。