Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FormData对象始终为空_Javascript_Php_Form Data - Fatal编程技术网

Javascript FormData对象始终为空

Javascript FormData对象始终为空,javascript,php,form-data,Javascript,Php,Form Data,我正在尝试创建表单数据,以便在post请求(到PHP脚本)中使用表单数据发送 但是,FormData对象始终为空: var oReq = new XMLHttpRequest(); var url = "http://www.test.com/test.php"; oReq.open("POST", url, true); oReq.setRequestHeader("Content-Type","multipart/form-data"); var myFormData = new FormD

我正在尝试创建表单数据,以便在post请求(到PHP脚本)中使用表单数据发送

但是,FormData对象始终为空:

var oReq = new XMLHttpRequest();
var url = "http://www.test.com/test.php";
oReq.open("POST", url, true);
oReq.setRequestHeader("Content-Type","multipart/form-data");
var myFormData = new FormData();
myFormData.append("formType","PDF");
myFormData.append("pdf", pdf.output(),"thisPDF.pdf");
oReq.send(myFormData);
“pdf”变量是一个jsPDF对象(我已经检查过它是否是一个有效的对象,并且我已经尝试删除该行,并且只发送了“test”表单数据元素。然而,myFormData始终是一个空对象。希望我在这里错过了一些简单的东西

此外,当我尝试检查PHP脚本中是否存在表单元素时,它显示没有$\u POST和$\u FILE元素

其他信息:

当我尝试此代码时:

var oReq = new XMLHttpRequest();
var url = "http://www.test.com/test.php";
oReq.open("POST", url, true);
oReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
var myFormData = new FormData();
myFormData.append("formType","PDF");
alert(JSON.stringify(myFormData));
oReq.send(myFormData);
然后,我可以访问php脚本中的“formType”$\u POST变量。但是,如果我在myFormData对象中添加File append语句(并保持相同的“内容类型”),php脚本将返回一个“不允许访问”错误


但是,在这两种情况下,$\u POST都是根据isset($\u POST)设置的,插入文件后,$\u file变量是根据isset($\u文件)设置的。

删除
oReq.setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
如果您在FormData中添加文件,则浏览器会自动设置多部分/表单数据头。

您知道变量声明会被提升到任何块作用域的顶部,因此在某些行之后声明变量可能会出现未定义的情况,而这不是问题所在。即使我将该声明移动到块作用域的顶部块,它仍然显示为空。并且不是nil/null,而是一个空的FormData对象。