首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >FormData.append("key","value")不工作

FormData.append("key","value")不工作
EN

Stack Overflow用户
提问于 2011-10-13 17:39:21
回答 4查看 209.2K关注 0票数 111

你能告诉我这有什么问题吗:

代码语言:javascript
复制
var formdata = new FormData();
formdata.append("key", "value");
console.log(formdata);

我的输出如下所示,我找不到我的"key“- "value”对

代码语言:javascript
复制
FormData
*__proto__: FormData
**append: function append() { [native code] }
***arguments: null
***caller: null
***length: 0
***name: "append"
***prototype: append
***__proto__: function Empty() {}
*constructor: function FormData() { [native code] }
**arguments: null
**caller: null
**length: 0
**name: "FormData"
**prototype: FormData
**toString: function toString() { [native code] }
*__proto__: Object
**__proto__: Object
**__defineGetter__: function __defineGetter__() { [native code] }
**__defineSetter__: function __defineSetter__() { [native code] }
**__lookupGetter__: function __lookupGetter__() { [native code] }
**__lookupSetter__: function __lookupSetter__() { [native code] }
**constructor: function Object() { [native code] }
**hasOwnProperty: function hasOwnProperty() { [native code] }
**isPrototypeOf: function isPrototypeOf() { [native code] }
**propertyIsEnumerable: function propertyIsEnumerable() { [native code] }
**toLocaleString: function toLocaleString() { [native code] }
**toString: function toString() { [native code] }
**valueOf: function valueOf() { [native code] }

我不明白!昨天它工作得很好,今天我的头撞了很多次键盘!Firefox,Chrome,都是一样的:/

EN

回答 4

Stack Overflow用户

发布于 2013-08-04 09:37:01

你可能遇到了我最初遇到的同样的问题。我试图使用FormData抓取我所有的输入文件来上传图像,但同时我想在传递给服务器的信息中附加一个会话ID。我一直认为,通过添加信息,您可以通过访问对象在服务器中看到它。我错了。当您附加到FormData时,检查服务器上附加信息的方法是通过一个简单的$_POST['*your appended data*']查询。如下所示:

js:

代码语言:javascript
复制
$('form').submit(function(){
    var sessionID = 8;
    var formData = new FormData(this);
    formData.append('id', sessionID);

    $.ajax({
        url: "yoururl.php",
        data: formData,
        processData: false,
        contentType: false,
        type: 'POST',
        success: function(data){
            alert(data);
        }
    });
});

然后在php上:

代码语言:javascript
复制
$sessionID = $_POST['id'];
$files = $_FILES['image'];

$foreach ($files as $key=>val){
    //...
}
票数 25
EN

Stack Overflow用户

发布于 2015-10-29 18:37:30

您可以看到,您需要使用console.log(formData.getAll('your key'));请注意https://developer.mozilla.org/en-US/docs/Web/API/FormData/getAll

票数 8
EN

Stack Overflow用户

发布于 2018-08-02 17:51:00

在我使用Edge browser的情况下:

代码语言:javascript
复制
  const formData = new FormData(this.form);
  for (const [key, value] of formData.entries()) {
      formObject[key] = value;
  }

给我同样的错误

所以我没有使用FormData,我只是手动构建了一个对象

代码语言:javascript
复制
import React from 'react';    
import formDataToObject from 'form-data-to-object';

  ...

let formObject = {};

// EDGE compatibility -  replace FormData by
for (let i = 0; i < this.form.length; i++) {
  if (this.form[i].name) {
    formObject[this.form[i].name] = this.form[i].value;
  }
}

const data = formDataToObject.toObj(formObject): // convert "user[email]":"customer@mail.com" => "user":{"email":"customer@mail.com"}

const orderRes = await fetch(`/api/orders`, {
        method: 'POST',
        credentials: 'same-origin',
        headers: {
          'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
      });

const order = await orderRes.json();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7752188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档