谢谢您,但我在没有 {{ csrf_field() }} 的情况下提交数据,因为我停止了中间件。我正在按钮上使用 onclick 事件,因此我的新 ajax 代码在这里并且可以正常工作:-
<script>
function accessorySetting() {
var data={'max_accessories':$('input[name="max_accessories"]').val(),
'quick_view':$('input[name="quick_view"]:checked').val(),
'thumbnail':$('option:selected').val(),
'accessory_discription':$('input[name="accessory_discription"]:checked').val(),
'quantity_selector':$('input[name="quantity_selector"]:checked').val()
};
saveAjaxSetting(data);
}
function languageSetting() {
var data={'addons_heading':$('input[name="addons_heading"]').val(),
'quantity':$('input[name="quantity"]').val(),
'variant':$('input[name="variant"]').val(),
'price':$('input[name="price"]').val()};
//alert(JSON.stringify(data));
saveAjaxSetting(data);
}
function saveAjaxSetting(data1) {
//alert(JSON.stringify(data1));
$.ajax({
type: 'POST',
url: "/spiceaddons/public/store",
dataType: 'json',
data:data1,
success: function (data) {
console.log(data);
toastr.success("Setting Save Successfully");
},
error: function (err) {
var response = JSON.parse(err.responseText);
$.each( response.errors, function( key, value) {
toastr.error(value);
});
},
});
}
</script>
您的代码无法运行的原因可能有多种。
1 - CSRF 代币
您的 API 调用正在使用 POST。假设此路由位于
web.php
路由文件中,这意味着您的表单需要包含 CSRF 令牌。为此,请将以下行添加到每个 HTML 表单(在开始 form
标记之后):
{{ csrf_field() }}
2 - 可填写字段
如果您在模型中使用
$fillable
,则需要确保数组包含您期望的所有字段。如果 $fillable
数组中缺少任何列,数据将不会保存到该列。
protected $fillable = [ 'name', 'value', ... ];
3 - 检查
laravel.log
文件
检查
storage/logs/larave.log
中的错误日志文件,查看代码是否引发任何其他错误或异常。这将为您提供堆栈跟踪,以帮助您确定哪个文件和行可能导致错误。