2014-02-12 58 views
0

我尝试在laravel 4中实现ajax post请求,但我无法获取发布数据。我曾尝试实现input :: get()和input :: all()。POST请求无法在Laravel中使用Ajax工作

下面是Ajax代码:

$.ajax({ 
    url :url, 
    type:'POST', 
    data:{username:username}, 
    dataType:'JSON', 
    success:function(data){ 
     console.log(data); 
    } 
}); 

控制器类代码:

class UserController extends Controller 
{ 
    // Obtain the response text 
    protected function _make_response($response_str, $type = 'application/json') { 
     $response = Response::make($response_str); 
     $response->header('Content-Type', $type); 
     return $response; 
    } 

    // User Login Function 
    public function loginAction() 
    { 
     // $setting_name = Input::get('username'); 
     $username = Input::get('username'); 

     $response = array(
      'username' =>$username, 
     ); 

     return $this->_make_response(json_encode($response)); 
    }} 

我无法将图像粘贴在这里。所以我粘贴从Firebug获得的结果。

POST http://localhost/d/dthKerala/public 200 OK 117ms 
Object {...} 

但我更改请求类型来GET。我能够获得这些数据。

GET http://localhost/d/dthKerala/public?username=render 200 OK 119ms 
Object {username="render"} 

我怎样才能获得POST数据?

回答

0

您犯的错误是使用称为=>的字段值对发送数据。只要改变数据有一个名为“用户名”与价值username

$.ajax({ 
    url :url, 
    type:'POST', 
    data:{"username":username}, 
    dataType:'JSON', 
    success:function(data){ 
     console.log(data); 
    } 
}); 

希望这有助于。

+0

我试了一下,同样的问题仍然存在。 –

+0

var_dump($ _ POST);'ajax页面上的结果是什么? – Luceos

+0

array(size = 0) empty –

0
$.ajax(
{ 
    url :url, 
    type:'POST', 
    dataType:'JSON', 
    data:{'username':username}, 
    success:function(data){ 
     console.log(data); 
    } 
}); 
0

,你才能指定路线部分
此外,我想建议使用响应:: JSON(),而不是写代码的多个线路:

public function loginAction() 
    { 
     return Response::json(array('str'=>$response_str)) 
    } 
+0

Route :: any(“/”,[ \t“as”=>“user/login”, \t“uses”=>“UserController @ loginAction” ]); –