首页 文章

无法使用Laravel中的AJAX帖子接收数据

提问于
浏览
0

我试图发送一些变量(数据),一个是复选框文本,另一个是textarea字段中的值,通过ajax到Laravel中的控制器,下面是脚本:

<script>
    $('#btn1').on('click', function() {

        $('input[type="checkbox"]').on('click', function() {
        var aa=$(this).next('label').text();
        var bb=$('textarea#txt2').val();
        $.ajaxSetup({
            headers:
                {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
        });
           $.ajax({
            type: "POST",
            url: "/masterdata",
            //dataType: 'json',
            data: {aa,bb},
            success:function(){
            console.log(data);    
       }
        ,error:function(){ 
            console.log("Error!!!!");
       }    
    });
    });
    }); 
     </script>

在尝试检索控制器中的请求值时,只显示请求令牌,并且ajax函数也不显示成功或错误消息 . 我在这里缺少什么?

4 回答

  • 0

    我在你的ajax请求中发现了两个问题 .

    • 你必须将 data: {aa,bb}, 更改为像 data: {aa : aa, bb : bb}, 这样的对象

    • 您的成功响应日志错误 . 当前代码 success:function() ,应为 success:function(data)

    新代码的完整输出是:

    <script>
        $('#btn1').on('click', function() {
    
            $('input[type="checkbox"]').on('click', function() {
            var aa=$(this).next('label').text();
            var bb=$('textarea#txt2').val();
            $.ajaxSetup({
                headers:
                    {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
            });
               $.ajax({
                type: "POST",
                url: "/masterdata",
                dataType: 'json',
                data: {aa : aa, bb : bb},
                processData: false,
                cache: false, 
                async :false,
                success:function(data){
                console.log(data);    
           }
            ,error:function(){ 
                console.log("Error!!!!");
           }    
        });
        });
        }); 
    </script>
    

    To get parameter value in controller use

    /**
     * Store.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        $aa = $request->input('aa');
        $bb = $request->input('bb');
        //Your code here
    }
    
  • 0

    你需要在ajax成功上设置一个变量,如下所示:

    $.ajax({
                type: "POST",
                url: "/masterdata",
                //dataType: 'json',
                data: {aa,bb},
                success:function(response){
                console.log(response);    
           }
            ,error:function(){ 
                console.log("Error!!!!");
           }    
    });
    
  • 0
    <script>
        $('#btn1').on('click', function() {
    
            $('input[type="checkbox"]').on('click', function() {
            var aa=$(this).next('label').text();
            var bb=$('textarea#txt2').val();
            $.ajaxSetup({
                headers:
                    {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
            });
               $.ajax({
                type: "POST",
                url: "/masterdata",
                //dataType: 'json',
                data: 'aa=test'+'&bb=test',
                success:function(){
                console.log(data);    
           }
            ,error:function(){ 
                console.log("Error!!!!");
           }    
        });
        });
        }); 
         </script>
    
  • 0

    以这种格式试用您的数据:

    data:{'posa': aa, 'posb': bb},
    

    success:function(data){
            console.log(data);    
       }
    

    希望这可以帮助 .

相关问题