2017-06-18 22 views
0

他們,我點擊訂閱按鈕,它給我的錯誤信息如下阿賈克斯形式方法錯誤5.4

MethodNotAllowedHttpException

,但我已經在路由文件

Route::post('/emailsub','[email protected]'); 

的控制器定義方法部分在這裏

public function emailsub(Request $request){ 
    $data = new EmailSub; 
    $data->email = $request->email; 
    $data->save(); 
    return $request->all();; 
} 

這裏是Html代碼O ˚F我的形式

<form method="POST" > 
     {{csrf_field()}} 
      <input type="text" id="email" placeholder="email" required=""> 

      <input type="submit" id="subbtn" value="Subscribe">   

    </form> 

這裏是阿賈克斯部分

$('.button').on('click','#subbtn',function(){ 

      $.ajax({ 
        type: 'post', 
        url: "emailsub", 
        data:{ 
         'email':$('#email').val(), 
         '_token':$(input['name=_token']), 
        }, 
        success: function (data) { 
         $('#subbtn').val("Unsubscribe"); 
        }, 
       }); 

    }); 
+0

的[laravel投擲MethodNotAllowedHttpException(https://stackoverflow.com/questions/19760585/laravel-throwing-methodnotallowedhttpexception) – Catalyst

回答

0

更改了Ajax:

$.ajax({ 
    type: 'post', 
    url: "/emailsub", 
    data:{ 
     'email':$('#email').val(), 
     '_token':$('input["name=_token"]').val(), 
    }, 
    success: function (data) { 
     $('#subbtn').val("Unsubscribe"); 
    }, 
}); 

你沒有把CRSF字段的值和URL應該有一個主要的斜線。

+0

它仍然給我同樣的錯誤 –

+0

嘗試改變事件監聽器可能的複製('click',function(e){'。我沒有在你的html中的任何地方看到一個''button'',在你發送ajax之前還要加上'e.preventDefault()'。 – btl

+0

已更改 –

0

類型:字符串 方法的別名。如果您使用1.9.0之前版本的jQuery,則應該使用類型。 嘗試使用方法而不是類型。方法不允許表示它不會將請求視爲發佈請求。 `$('#:

+0

問題沒有解決 –