莫菲    

laravel5中运用ajax post实例

7年前发布  · 1095 次阅读
  laravel5  ajax 

注意事项:ajax的url问题,我是将ajax嵌套到layer中,待提交的表单的地址为:http://www.admin.local.com/systerm/payInterface  ajax的post地址为:http://www.admin.local.com/systerm/addPay 那么url只需要写addPay就可以了,提交的地址获取ajax的数据代码是:Input::get('');(前面加上 use Input),网上有使用 Input::all()获取全部ajax数据的,我不知道为什么我的获取不了全部数据,所以我就一个个获取的。代码片段如下:

***.blade.php:

***
<a class="btn btn-sm btn-primary f-r m-l" href="#" id="add"><i class="icon hy-plus"></i>创建</a>
{!! Form::open(['class'=>'form-horizontal m-t', 'method'=>'post', 'id'=>'form_add']) !!}
{!! Form::text('name', Input::get('name'), ['class' => 'form-control', 'id'=>'Name', 'data-rule'=>'支付接口名称:required;name']) !!}
{!! Form::close() !!}
***
<script>
 // 支付接口新增
        $("#add").click(function (e) {
            layer.open({
                title: '新增支付接口',
                type: 1,
                area: ['600px'],
                content: $("#add_panel"),
                btn: ['确定', '取消'],
                yes: function (index, layero) {
                    $.ajax({
                        url :"addPay",
                        type: "POST",
                        dataType:'json',
                        data : $('#form_add').serialize(),
                        success: function(data)
                        {
                        }
                    });
                    layer.close(index);
                    toastr.success('新增支付接口成功', '新增支付接口');
                },
                cancel: function (index) {
                }
            });
            e.preventDefault();
        });
</script>
/****controller**/
***
use Input;
***
$name = Input::get('name');

ajax 的 dataType如果指定为json总是会回调error而不是回调 success  后来去掉dataType 就可以解决了  后查资料得知jquery对json的格式要求比较严格,必须是非常标准的json格式才会执行success。