112

これのどこが悪いのか教えてください:

var formdata = new FormData();
formdata.append("key", "value");
console.log(formdata);

私の出力は次のようになります。「キー」と「値」のペアが見つかりません

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、どちらも同じ :/

4

8 に答える 8

134

Chrome 50 以降および Firefox 39 以降 (44 以降) の新機能:

  • formdata.entries()(Array.from()デバッグ可能性のために と組み合わせる)
  • formdata.get(key)
  • そしてもっと便利な方法

元の答え:

オブジェクトを「デバッグ」するために私が通常行うことはFormData、それを (どこにでも!) 送信し、ブラウザーのログ (例: Chrome devtools の [ネットワーク] タブ) を確認することです。

同じ Ajax フレームワークは必要ありません。詳細は必要ありません。送信するだけです:

var xhr = new XMLHttpRequest;
xhr.open('POST', '/', true);
xhr.send(data);

簡単。

于 2012-12-30T16:36:54.287 に答える
51

あなたはそれが機能していないと言います。何が起こると予想していますか?

FormDataオブジェクトからデータを取得する方法はありません。これは、(メソッドの)XMLHttpRequestオブジェクトと共にデータを送信するために使用することを目的としています。send

ほぼ 5 年後に更新: 一部の新しいブラウザーでは、これは事実ではなくなり、データをFormData詰め込むだけでなく、提供されたデータを表示できるようになりました。詳細については、受け入れられた回答を参照してください。

于 2011-10-13T09:53:29.607 に答える
17

Chrome を使用している場合は、投稿データを確認できます

投稿データの確認方法はこちら

  1. ネットワークタブに移動
  2. 投稿データの送信先のリンクを探します
  3. クリックして
  4. ヘッダーで、リクエストペイロードをチェックして投稿データを確認できます

Chrome の DevTools

于 2014-07-14T18:41:46.210 に答える
8

使用する必要があることがわかりますconsole.log(formData.getAll('your key'))https://developer.mozilla.org/en-US/docs/Web/API/FormData/getAllを見る

于 2015-10-29T10:37:30.437 に答える