簡體   English   中英

FormData對象始終為空

[英]FormData object always empty

我正在嘗試創建表單數據以使用FormData在發布請求(到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腳本中是否存在表單元素時,它根本沒有顯示$ _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);

然后我可以訪問php腳本中的“formType”$ _POST變量。 但是,如果我將文件追加語句添加到myFormData對象(並保持相同的'Content-Type',則PHP腳本錯誤會返回“不允許訪問”錯誤。

但是,在兩種情況下都根據isset($ _ POST)設置$ _POST,並且插入文件時,根據isset($ _ FILE)設置$ _FILE變量。

刪除oReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 從代碼。 如果在FormData中添加文件,瀏覽器會自動設置multipart / form-data標頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM