繁体   English   中英

在 Laravel 中使用 ajax FormData() 时无法获取输入字段的值

[英]Can't get value of input field when using ajax FormData() in Laravel

 $(document).on('submit', '#color_changer_form', function(e) { e.preventDefault(); var colorCode = $('#color_code').val(); var formData = new FormData(this)[0]; $.ajax({ headers: { 'X-CSRF-Token': "{{csrf_token()}}" }, type: "POST", url: "{{route('color.store')}}", data: formData, async: false, success: function(data) { console.log(data) }, cache: false, contentType: false, processData: false }); });
 <form action="" method="POST" id="color_changer_form"> <input type="text" id="color_code" name="color_code"> <button type="submit" id="color_submit" class="btn btn-success">Save Change</button> </form>

控制器片段:

public function store(Request $request){
    return response()->json($request->all());
}

当我尝试使用 jQuery AJAX FormData()方法获取整个表单数据时,我得到一个空数组。

需要使用这个FormData()因为在不久的将来我必须使用表单数据上传图像。

发送整个formData对象

改变:

 var formData = new FormData(this)[0];

 var formData = new FormData(this);

如果没有涉及文件,那么使用serialize()也很简单

$.ajax({
  headers: {
    'X-CSRF-Token': "{{csrf_token()}}"
  },
  type: "POST",
  url: "{{route('color.store')}}",
  data: $(this).serialize(),
  success: function(data) {
    console.log(data)
  }

});

永远不要使用async:false 这是一种可怕的做法,已被弃用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM