我正嘗試創建表單數據以使用FormData發送到一個發佈請求(到PHP腳本)。FormData對象始終爲空
然而,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對象(我檢查了,這是一個有效的對象,我曾試圖刪除了這一行,只發送「測試」表單數據元素,然而,myFormData總是一個空對象,希望我只是在這裏丟失了簡單的東西
另外,當我嘗試檢查表單元素是否存在PHP腳本,它根本不顯示$ _POST和$ _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);
然後我就可以訪問 「formType」 $ _ POST變量在PHP腳本。但是,如果我將File append語句添加到myFormData對象(並保留相同的'Content-Type',PHP腳本錯誤返回一個「不允許的訪問」錯誤。
但是,$ _POST是根據isset($ _ POST),並且插入文件$ _FILE變量根據isset($ _ FILE)設置。
你知道變量聲明會被提升到任何塊範圍的頂部,所以在某些行後面聲明變量可能會變成undefined – iamwhitebox 2015-03-30 20:24:50
雖然這是真的,但這不是他的問題回覆。即使我將該聲明移動到塊的頂部,它仍然顯示爲空。而不是nil/null,而是一個空的FormData對象。 – 2015-03-31 01:45:09