【问题标题】:Jquery data.success is not working with laravel 5.8Jquery data.success 不适用于 laravel 5.8
【发布时间】:2020-04-14 03:51:04
【问题描述】:

我通过 ajax 向控制器发送数据并返回一个 json 响应,但是当我尝试使用响应执行操作时它不起作用。

jQuery 代码

$.ajax({headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
                  type:'POST',

                  url:'/save-item',
                  data:datas,
                  success:function(data){
                    if(data.success){
                              alert("done"); 

                                }
                      },
            //error: function(jqXHR, textStatus, errorThrown) {
              //console.log(textStatus, errorThrown);
              error: function (data) {
                            console.log('Error:', data);
        }

        });

Laravel 代码

public function saveItem(Request $request){

        print_r($request->input('iname'));

         $input = $request->input('iname');
        //print_r(Input::all());

        return response()->json(['success'=>true]);
    }

【问题讨论】:

  • 你可以尝试删除print_r($request->input('iname'));吗?
  • it's not working -- 好的,你遇到错误了吗?你的 laravel 路由设置是 POST 吗?请更具体。
  • @Froxz 谢谢我犯了这个愚蠢的错误,删除print_r($request->input('iname'));后它正在工作
  • 另外,@Froxz 很可能是正确的。如果您在设置 json 标头之前输出某些内容,则可能会引发标头已发送错误。
  • @JeremyHarris 没有错误,只是内容不再是 JSON,因为输出将是:value_of_input_name{"success":true}

标签: jquery json ajax laravel laravel-5.8


【解决方案1】:

当您在发送response 之前执行print_r 时,来自print_r 的所有信息都将添加到您的实际回复中:

value_of_input_name{"success":true}

在这种情况下不再是有效的 json,jQuery 无法读取/解析。

【讨论】:

    猜你喜欢
    • 2019-10-30
    • 2021-01-13
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    相关资源
    最近更新 更多