【问题标题】:jQuery, Convert $.ajax method to $.postjQuery,将 $.ajax 方法转换为 $.post
【发布时间】:2014-05-25 17:12:04
【问题描述】:

我正在尝试制作一个简单的表单来使用 jquery/ajax 上传文件。这是我的代码的一部分:

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

  $.ajax({
    url: 'uploader.php',
    type: 'POST',
    data: formData,
    async: false,
    cache: false,
    contentType: false,
    processData: false,
    success: function (data) {
      $('#ShowR').html(data);
    }
  });

我正在尝试将此代码更改为 $.post 方法,如下所示:

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

$.post('uploader.php', {action:"ShowGTR",MyFiles:formData},
function(data) {
 $('#ShowR').html(data);
});

我尝试了一些方法,但我无法修复代码,并且在 Google Chrome 控制台中我收到了这个错误:

Uncaught TypeError: Illegal invocation 

所以我需要您的帮助来修复此代码并将 $.ajax 方法转换为 $.post 方法。如果有人能帮助我,我真的很感激。

【问题讨论】:

  • 您是否尝试将 $.ajax 转换为 $.post 是因为您想在请求中添加参数?

标签: jquery ajax forms post methods


【解决方案1】:

如果您要将 $.ajax 调用转换为 $.post 调用的唯一原因是添加一个参数,那么您不需要将其转换为 $.post。你要做的就是appendformdata对象的参数。

  var formData = new FormData(this);
  formData.append("action", "ShowGTR");

  $.ajax({
    url: 'uploader.php',
    type: 'POST',
    data: formData,
    async: false,
    cache: false,
    contentType: false,
    processData: false,
    success: function (data) {
      $('#ShowR').html(data);
    }
  });

【讨论】:

    【解决方案2】:
    $.post( "ajax_file.php", {username:"someone"} ,function( data ) {
        $("#div-id").html(data);
    });
    

    这是 jquery post 的一般语法。

    【讨论】:

    • 我知道!但我的问题是别的!我如何将 ajax 方法(第一个代码)转换为 post 方法(第二个代码):(
    • 试试var formData = new FormData($(this)[0]); console.log(formData);你在控制台看到了什么?
    • 这是一个新错误:Uncaught ReferenceError: formData is not defined
    • 所以,这里是错误的。我不知道,但这是参考错误。这是什么?此更改的值因此可能导致错误...
    • 亲爱的朋友,我想你没有看我的问题!第一个代码是正确的并且运行良好。但我需要在ajax旁边使用post方法!就是这样!但谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 2016-10-08
    • 1970-01-01
    • 2019-04-19
    • 2015-12-16
    相关资源
    最近更新 更多