如何在laravel控制器中读取JSON数据?

时间:2020-05-15 13:48:33

标签: json laravel controller

在此之前,我在实时服务器中遇到405种方法不允许错误

ajax调用以上传文件:

$('#form-repeater').on('submit',function(e){
e.preventDefault();

$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });


let thiss=$(this);


let form = document.getElementById('form-repeater');
let data =new FormData(form);


$.ajax({

        type:thiss.attr('method'),
        url:thiss.attr('action'),
        data:data,
        dataType:'JSON',
        // ContentType:'application/json',
        cache: false,
        processData: false,
        success:function(response){
            if(response.message=='1'){

                    Swal.fire(
                    'Product Added Successfully',
                    '',
                    'success'
                    )
                    setTimeout(function(){
                        window.location.href="/banner";
                    }, 2000);//wait 2 seconds

                }
            else{


                  error = response.errors;
                  if(error.staff){
                      $('#form-repeater .invalid-staff').html(error.staff);
                    }else{
                        $('#form-repeater .invalid-staff').html('');                            
                    }

                if(error.customerNumber){                            
                        $('#form-repeater .invalid-cust_numb').html(error.customerNumber);
                     }else{
                        $('#form-repeater .invalid-cust_numb').html('');
                  }}});

这是我对ajax调用的回复:enter image description here 通常我无法在控制器中检索数据:

我使用dd($request->all());

进行调试

1 个答案:

答案 0 :(得分:0)

向应用程序发送JSON请求时,只要将请求的input标头正确设置为Content-Type,就可以通过application/json方法访问JSON数据。您甚至可以使用“点”语法来挖掘JSON数组:$name = $request->input('user.name');

然后,您可以在控制器上执行以下操作:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * Store a new user.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        $name = $request->input('user.name');

        // Manage your data the way you want
    }
}