javascript - AJAX jQuery新版本关于 "Insert into database without page load"

标签 javascript php jquery mysql ajax

我是 AJAX 新手,我使用的是旧代码:

 $.ajax({
  type: 'POST',
  url: 'phppath/sucms.php',
  data: $('#formid').serialize(),
  success: function(response){
   $('#success').html(response);
  }
 });

它可以工作,但并不完美,一切都很好,但是当我尝试上传图像时,它具有“清晰的值”。

我正在尝试编写这样的新代码:

  var formData = new FormData(this);
  $.ajax({
  type: 'POST',
  url: 'phppath/sucms.php',
  data: formData ,
  success: function(response){
   $('#success').html(response);
   }
  });

但它会重新加载页面并打开 sucms.php 清晰窗口。

最佳答案

如果您想使用ajax上传文件,您需要在ajax配置中将contentType和processData设置为false。

    var formData = new FormData();
        formData.append(<KEY>, <FILE>);

    $.ajax({
        type: 'POST',
        contentType: false,
        processData: false,
        url: 'phppath/sucms.php',
        data: formData ,
        success: function(response){
            $('#success').html(response);
        }
    });

另一方面,如果页面正在重新加载或在新窗口中打开。这可能是因为您的按钮类型是提交。您应该将按钮类型更改为 button 或使用 event.preventDefault() 来阻止在传统表单提交方法中执行操作。

关于javascript - AJAX jQuery新版本关于 "Insert into database without page load",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50292133/

相关文章:

javascript - 滚动动画发生时禁用滚动

javascript - 使用 AJAX 刷新莫里斯图

javascript - 如何根据一个月的天数循环表的<tr>?

javascript - 如何使用Jquery创建分割图像效果

java - 如何将对象数组从 javascript 传递到 Java

javascript - Laravel-如果我将变量传递给 Controller ​​并保存在数据库中,如何在 javascript 中使用 switch case

javascript - html页面是如何按顺序渲染的?

php - 使用 fopen 打开数据库中的文件

php - 比较两个大表的唯一记录

javascript - 使用 jquery 的日期选择器,以月份和年份作为网格