Javascript 在控制台中检查FormData键和值

Javascript 在控制台中检查FormData键和值,javascript,Javascript,我想把FormData带到控制台来检查键和值 var f = new FormData(); f.append('key1', 'value1'); console.log(f); f = new FormData(); console.log(f); // I wanna know: Does f keep the key `key1` and value `value1`? 当我签入控制台时,在任何地方都看不到键和值 你能给我一些提示吗?如果你在使用firefox,你可以发送一个a

我想把FormData带到控制台来检查键和值

var f = new FormData();
f.append('key1', 'value1');

console.log(f);

f = new FormData(); 

console.log(f); // I wanna know: Does f keep the key `key1` and value `value1`?
当我签入控制台时,在任何地方都看不到键和值


你能给我一些提示吗?

如果你在使用firefox,你可以发送一个ajax请求,并在网络监视器中检查请求的参数

以下是一个屏幕截图:

或者,如果您使用的是php,您可以轻松地
print\r($\u POST)
$\u GET

一种利用;另见


MDN示例-嵌入式工作者
//JS引擎不会解析此脚本
//因为它的mime类型是text/js worker。
//var myVar=“你好,世界!”;
var key=“key1”;
var value=“value1”;
//myVar.append('key1','value1');
//其余的工作代码都在这里。
//此脚本将由JS引擎解析
//因为它的mime类型是text/javascript。
功能页面日志(sMsg){
//使用片段:浏览器只渲染/回流一次。
ragm的var=document.createDocumentFragment();
oFragm.appendChild(document.createTextNode(sMsg));
of ragm.appendChild(document.createElement(“br”));
document.querySelector(“#logDisplay”).appendChild(oFragm);
}
//JS引擎不会解析此脚本
//因为它的mime类型是text/js worker。
onmessage=函数(oEvent){
var f=新的FormData();
f、 附加(键、值);
for(变量对f.条目(){
postMessage(对[0]+“,“+对[1]);
}
};
//其余的工作代码都在这里。
//此脚本将由JS引擎解析
//因为它的mime类型是text/javascript。
//过去……:
//blob生成器已存在
//…但现在我们使用Blob…:
var blob=新blob(
阵列原型
.地图.电话(
document.querySelectorAll(“脚本[type=\'text\/js worker\']”)
,函数(oScript){return oScript.textContent;})
,{type:“text/javascript”});
//创建新的document.worker属性
//包含我们所有的“text/js worker”脚本。
document.worker=newworker(window.URL.createObjectURL(blob));
document.worker.onmessage=函数(oEvent){
页面日志(“接收:+oEvent.data”);
};
//启动工人。
window.onload=function(){document.worker.postMessage(“”;};


因为您正在为它重新分配一个新的FormData对象。@Shyju这意味着:我可以覆盖
key1
?就像:
f.append('key1','value2')
,不是吗?是的,您可以再次追加到新对象哦。很抱歉有没有其他方法可以在不发出ajax请求的情况下做到这一点?我认为这是不可能的,但您应该明确地检查这个问题:我不确定这是否对您有效,但请尝试一下,
console.log(JSON.stringify(formdata))
console.log(JSON.stringify(formdata))
打印
{}
:@user297904“但正如我从最新版本Firefox支持的文档中所看到的”在chrome上,chrome可以启用harmony flag,对于
FormData.entries()
,它现在只在FF dev edition上工作。@HappyCoding”对于FormData.entries(),它现在只在FF dev edition上工作“应返回chrome中的预期结果,chrome设置了
--javascript harmony
标志,请参阅
js
at post在chromium 49No上进行了尝试。医生()说只有44英尺。FF的最新版本是43.0.3。这是FF开发版的45.0a2。我刚试过。@HappyCoding“没有。文档(developer.mozilla.org/en US/docs/Web/API/FormData/entries)说它只有FF 44。FF的最新版本是43.0.3。FF开发版是45.0a2。我刚试过。”在chrome上试过,chrome上设置了
--javascript harmony
标志?还没有在firefox上试用过
js
at post在chromium 49进行了试验
FormData.entries()
应该可以在firefox nightlySorry上使用,我只需转到
chrome://flags/#enable-javascript和谐
启用实验javascript
。然后从中复制示例并重试。控制台日志显示错误消息:
formData.entries不是函数
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>MDN Example - Embedded worker</title>
<script type="text/js-worker">
  // This script WON'T be parsed by JS engines 
  // because its mime-type is text/js-worker.
  // var myVar = "Hello World!";
  var key = "key1";
  var value = "value1";
  // myVar.append('key1', 'value1');
  // Rest of your worker code goes here.
</script>
<script type="text/javascript">
  // This script WILL be parsed by JS engines 
  // because its mime-type is text/javascript.
  function pageLog (sMsg) {
    // Use a fragment: browser will only render/reflow once.
    var oFragm = document.createDocumentFragment();
    oFragm.appendChild(document.createTextNode(sMsg));
    oFragm.appendChild(document.createElement("br"));
    document.querySelector("#logDisplay").appendChild(oFragm);
  }
</script>
<script type="text/js-worker">
  // This script WON'T be parsed by JS engines 
  // because its mime-type is text/js-worker.
  onmessage = function (oEvent) {
    var f = new FormData();
    f.append(key, value);
    for(var pair of f.entries()) {
      postMessage(pair[0] + ", " + pair[1]); 
    }

  };
  // Rest of your worker code goes here.
</script>
<script type="text/javascript">
  // This script WILL be parsed by JS engines 
  // because its mime-type is text/javascript.

  // In the past...:
  // blob builder existed
  // ...but now we use Blob...:
  var blob = new Blob(
               Array.prototype
               .map.call(
                 document.querySelectorAll("script[type=\"text\/js-worker\"]")
               , function (oScript) { return oScript.textContent; })
             , {type: "text/javascript"});

  // Creating a new document.worker property 
  // containing all our "text/js-worker" scripts.
  document.worker = new Worker(window.URL.createObjectURL(blob));

  document.worker.onmessage = function (oEvent) {
    pageLog("Received: " + oEvent.data);
  };

  // Start the worker.
  window.onload = function() { document.worker.postMessage(""); };
</script>
</head>
<body><div id="logDisplay"></div></body>
</html>
// Log entries of a FormData object to the console as an object.
export const logFormData = (formData) => {
    const entries = formData.entries();
    const result = {};
    let next;
    let pair;
    while ((next = entries.next()) && next.done === false) {
        pair = next.value;
        result[pair[0]] = pair[1];
    }
    console.log(result);
};