我正在嘗試將 JSON 數(shù)組中的 FormData 傳遞給 AJAX 腳本: $('#form').submit(function(e) { e.preventDefault(); let formData = new FormData(this), data = {'action': 'insert', 'data': formData}; $.ajax({ data: data, url: '/wp-content/plugins/eng-dealer-map/bin/Admin.php', type: 'post', cache: false, contentType: false, processData: false, success: function(res) {console.log(res)}, error: function(res) {console.log(res)} }) }); 然后 /bin/Admin.php <?php ini_set('display_errors',1); ini_set('display_startup_errors',1); error_reporting(-1); $ds = DIRECTORY_SEPARATOR; require_once $_SERVER['DOCUMENT_ROOT']. $ds. 'wp-content'. $ds. 'plugins'. $ds. 'eng-dealer-map'. $ds. 'vendor'. $ds. 'autoload.php'; var_dump($_POST); $admin = new \App\Endpoint\Admin(['action' => $_POST['action'], 'data' => $_POST['data']]); echo $admin->execute(); 反過(guò)來(lái),最終進(jìn)入這個(gè)(縮小的)類(lèi): <?php namespace App\Endpoint; class Admin { protected $db; protected $table; protected $sql; protected $data; public function __construct($foo) { 不幸的是,它似乎$_POST在途中迷路了。在我的 JS 中添加這個(gè): for (let pair of formData.entries()) { console.log(pair[0]+ ', ' + pair[1]); } 它正確顯示了我的數(shù)據(jù)。然后我var_dump($_POST)在bin/Admin.php其中顯示了一個(gè)空數(shù)組。 我改為'data': formData所以'data': 'hello, world'我感覺(jué) FormData 不喜歡與其他元素一起在 JSON 數(shù)組中? 那么如何將帶有其他元素的 FormData 發(fā)送到我的 AJAX 腳本呢?我知道我可以使用: formData.append('action', 'action-value') 但是當(dāng)它可以作為一個(gè)對(duì)象發(fā)送到我的腳本時(shí),感覺(jué)就像是一個(gè)額外的步驟。 我也嘗試過(guò)使用JSON.stringifyonformData但又沒(méi)有。有沒(méi)有一種方法可以在不使用的情況下將 formData與其他數(shù)據(jù)一起作為一個(gè)對(duì)象發(fā)送.append()?還是這是我唯一的選擇?
1 回答

鳳凰求蠱
TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
我有一種感覺(jué) FormData 不喜歡與其他元素一起在 JSON 數(shù)組中?
正確的。您不能將 FormData 轉(zhuǎn)換為 JSON。
那么如何將帶有其他元素的 FormData 發(fā)送到我的 AJAX 腳本呢?
將額外的數(shù)據(jù)添加到 FormData。
我知道我可以使用:
formData.append('action', 'action-value')
是的,這樣做。
但是當(dāng)它可以作為一個(gè)對(duì)象發(fā)送到我的腳本時(shí),感覺(jué)就像是一個(gè)額外的步驟。
FormData
對(duì)象是一個(gè)對(duì)象。您只需將數(shù)據(jù)添加到其中,而不是將數(shù)據(jù)添加到不同的對(duì)象,然后嘗試從中添加數(shù)據(jù)FormData
。
- 1 回答
- 0 關(guān)注
- 165 瀏覽
添加回答
舉報(bào)
0/150
提交
取消