我尝试在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数据?
答案 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))
}