如何通过Ajax将包含字符串的表单数据发送出去?

时间:2018-12-06 11:10:53

标签: javascript jquery

在这里,我的html中有一个文件选择器,选择的文件将使用ajax发送的formData发送到Go API。但是现在我必须在ajax中发送一个带有data的简单字符串,我要附加formData变量,但是在控制台中没有字符串数据。

我正在使用的代码是:-

<input type="file" name="myFile" id="imageSelector"><br><br>

const data = new FormData();
var inputFile = $('#imageSelector').val().split('\\').pop();
data.append("file", $("#imageSelector")[0].files[0], inputFile);
data.append("category", "Eatables");
console.log(data)
$.ajax({
      url: "/api/v1/upload",
      type: "POST",
      contentType: false,
      processData: false,
      data: data,
      success: function(response){ 
          console.log(response)
      }
 });

我如何发送带有字符串的表单数据以及golang api会接收数据的data变量?

2 个答案:

答案 0 :(得分:0)

您无法定向console.log(data),您可以像这样console.log(data.get('category'))

答案 1 :(得分:0)

您必须做一个简单的事情,就像我在下面告诉您的那样,将其转换为json。

data.append("category", JSON.stringify(category))

在golang上接收时,您必须使用c.PostForm("category")(如果您使用的是gin包),并且如果要删除它们,它将输出显示为双引号字符串,您将使用以下代码:-< / p>

data.append("category", JSON.stringify(category).replace(/\"/g, ""));

我希望它能对您有所帮助:)