PHP Laravel 4.2 ajax post返回null或为空

时间:2015-08-29 18:24:49

标签: php jquery ajax laravel post

我尝试使用ajax将数据发布到laravel控制器,但仍然得到响应null。我的成就是发布表单数据并返回错误消息或成功消息。 我是ajax和laravel框架中的新手,请帮我解决问题。

这是元标记标题:

<meta name="_token" content="{{ csrf_token() }}">

这是html表单:

{{ Form::open(['id'=>'testimonial_form','url'=>URL::action("processing-give-testimonial"),'method'=>'POST']) }}
{{ Form::hidden('_method', 'PUT') }}
<div class="row marginbot-20">
    <div class="col-md-6 xs-marginbot-20">
        {{ Form::text('name',null, ['class'=>'form-control input-lg','placeholder'=>'Enter Name','id'=>'name']) }}
    </div>
    <div class="col-md-6">
        {{ Form::email('email',null, ['class'=>'form-control input-lg','id'=>'email','placeholder'=>'Enter email','id'=>'email']) }}
    </div>
</div>
<div class="row">
    <div class="col-md-12">
        <div class="form-group">
            <select name="subject" id="subject" class="form-control" require="required">
                <option value="ask">Ask Question / Information</option>
                <option value="testimonial">Give Feedback / Testimonial</option>
            </select>
        </div>
        <div class="form-group">
            {{ Form::textarea('message',null,['id'=>'message','class'=>'form-control','rows'=>'4','cols'=>'25','placeholder'=>'message','id'=>'message']) }}
        </div>
        <!-- {{ Form::submit('Send Message',['id'=>'btnContactUs','class'=>'btn btn-skin btn-lg btn-block']) }} -->
        {{ Form::button('Submit', ['class'=>'btn btn-skin btn-lg btn-block','id'=>'click']) }}          

    </div>
</div>
{{ Form::close() }}

这是ajax代码:

$(function() {
    $.ajaxSetup({
        headers: {
            'X-XSRF-Token': $('meta[name="_token"]').attr('content')
        }
    });
});
$(document).ready(function() {
    $('#click').click(function() {
        var formData = {
            name        : $('#name').val(),
            email       : $('#email').val(),
            subject     : $('#subject').val(),
            message     : $('#message').val(),
        };
        $.ajax({
            type     : "POST",
            url      : "{{ URL::action('processing-give-testimonial') }}",
            data     : formData,
            beforeSend: function () {
                    alert('sure?');
                },
            success: function(data) {
                console.log(data);
            },
            error: function() {
                console.log('error');
            }
        });
    });
});

这是控制器:

public function create()
{ 
    $inputs = array(
                'name' =>Input::get('name'),
                'email' =>Input::get('email'),
                'subject' =>Input::get('subject'),
                'message' =>Input::get('message')
            );

        //return "we reached here";
        return Response::json("success");
    /*if(Request::ajax()) {
        return Response::json('success', 200);
    } else {
        return Response::json('failed', 400);
    }*/

    /* if(Request::ajax()) {
          $data = Input::get('email');
          //print_r($data);die;
          if ($data != '') return Response::json('success',200);
          else return Response::json('failed',400);
        }*/
    /*
    $input = Input::get('name');
    //$input = Input::get('_token');
    if ($input == '') {
        return Response::json('failed',400); 
    }
    else {
        return Response::json('success',200);
    }*/
    //if(!empty($input)) return Response::json(['data'=>'success']);
    //else return Response::json('data',$input);


}

这是我的路线:

Route::post('give-testimonial',['uses'=>'TestimonialController@store','as'=>'processing-give-testimonial']);

这是filter.php:

Route::filter('csrf', function() {
$token = Request::ajax() ? Request::header('X-XSRF-Token') : Input::get('_token');
if (Session::token() != $token) {
    throw new Illuminate\Session\TokenMismatchException;
} });

1 个答案:

答案 0 :(得分:1)

我猜你的路由错了。尝试更改此路线:

Route::post('give-testimonial',['uses'=>'TestimonialController@create','as'=>'processing-give-testimonial']);

到此:

{{1}}