首页 > 解决方案 > 尝试使用 ajax 在 laravel 中提交数据并获得内部服务器 500 错误

问题描述

我正在尝试使用 ajax 插入数据我已经用 id="addpro" 的 id 定义了我的表单

<form id="addpro">
    @csrf

<div class="form-group">
<label for="name">Name</label>
<input type="name" id="name" name="name" class="form-control">
</div>
<div class="form-group">
    <label for="price">price</label>
    <input type="number" id="price" name="price" class="form-control">
    </div>
    <div class="form-group">
    <select name="category" id="category" class="form-control">
    <option value="soap">soap</option>
    <option value="shampoo">shampoo</option>
    <option value="perfume">perfume</option>
    <option value="handwash">handwash</option>
    <option value="surf">surf</option>
    </select>
    </div>
    <div class="form-group">
    <button type="submit" class="form-control btn-success">Submit</button>
    </div>
</form>

在我的 ajax 文件中,我写了这行代码

<script>
$("#addpro").submit(function(e){
e.preventDefault();

var name=$("input[name=name]").val();
var price=$("input[name=price]").val();
var category=$("input[name=category]").val();
var _token=$("input[name=_token]").val();

$.ajax({
    url :"{{route('ajax.store')}}",
    type:"POST",
    data:{
        name:name,
        price:price,
        category:category,
        _token:_token
    },
    success :function(response)
    {
        console.log(response);
    }
});



});


</script>

在我的 ajax 控制器中,我定义了方法,例如,我正在尝试以 json 的形式获取数据

public function store(Request $request)
    {
 
        $name=$request->name;
        $price=$request->price;
        $category=$request->category;
         $add=DB::table('products')->insert(['name'=>$name,'price'=>$price,'category'=>$category ]);
        return response()->json($add);

    }

我在我的 console.log 中收到此错误我没有使用任何模型和迁移 在此处输入图像描述

标签: javascriptphpjqueryajaxlaravel

解决方案


也许您忘记了添加$fillable变量,如下所示:

    protected $fillable = [
        'name',
        'price',
        'category',
    ];


推荐阅读