2015-07-01 96 views
0

我有一個Laravel 5項目正在運行,我試圖使用AJAX調用將一些輸入數據發送回服務器。但是,我一直在遇到內部服務錯誤。Laravel 5:Ajax post調用資源失敗

我有我使用這是一個 「用戶」 資源:

這是代碼:

routes.php文件:

Route::resource('user', 'UserController'); 

我有UserController.php和用戶。 PHP模型設置。

我有Ajax調用一個函數react.js內裹:

saveAndContinue: function(e) { 
    e.preventDefault() 

    // Get values via this.refs 

    email = this.refs.email.getDOMNode().value 

    request = $.ajax({ 
      url: "/user", 
      type: "post", success:function(data){ 
      this.setState({email: data}) 
      }, 
      data: {'email': email} ,beforeSend: function(data){console.log(data);} 
    }); 

    } 

我使用的應該調用存儲功能,我有在控制器後/用戶路線:

public function store() { 

     $v = Fan::validate(Input::all()); 

     $email = Input::get('email'); 

     if ($v->passes()) { 

      $user = new User; 
      $user->email = Input::get('email'); 
      $user->save(); 

     } 

     return $email; 

    } 

我不知道爲什麼這不起作用。請幫忙!

編輯: (這仍是不工作):

<meta name="csrf-token" content="<?= csrf_token() ?>"> 

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 

request = $.ajax({ 
      url: "/user", 
      type: "post", success:function(data){ 
      }, 
      data: {'email': email} ,beforeSend: function(data){console.log(data);} 
    }); 
+0

任何想法,任何人? – user1072337

回答

0

您不能直接讓你需要的CSRF令牌傳遞給laravel :)

 $.ajaxSetup({ 
    headers: { 
     'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 

此請求將從頭元數據標記中獲取CSRF標記並將其包含在每個ajax請求的標頭中。然後,您需要將元數據和令牌添加到您的Laravel模板中,例如。

<head> 
    <title></title> 
    <meta name="csrf-token" content="<?= csrf_token() ?>"> 

希望這將有助於

+0

爲什麼Laravel在5中如此複雜?這是簡單的4. – user1072337

+0

我設置了它,它仍然無法正常工作。請參閱上面的問題,我正在使用什麼。 – user1072337

+0

你究竟得到了什麼錯誤? –