POST请求在Laravel中使用Ajax无法正常工作

时间:2014-02-12 05:21:47

标签: javascript php jquery ajax laravel-4

我尝试在laravel 4中实现ajax post请求,但我无法获取发布数据。我尝试过实现input :: get()和input :: all()。

这是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数据?

3 个答案:

答案 0 :(得分:0)

您犯的错误是使用名为=>的字段值对发送数据。 。只需将数据更改为名称为“username”且值为username

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

希望这有帮助。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您是否可以指定路线部分
另外我想建议使用Response :: json()而不是编写更多代码行:

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