gpt4 book ai didi

javascript - Jquery 通过一次 ajax 调用同时发布文件和数据

转载 作者:行者123 更新时间:2023-11-29 16:57:58 25 4
gpt4 key购买 nike

您好,我有一个 wordpress php 类,它接收我的 ajax 并且运行良好。现在我必须在用于将参数传递给 PHP 类的同一个 POST 请求中上传一个文件(我在类中有一个开关根据 POST 数据中的参数将我发送到正确的函数)。

这是代码:

$(document).ready(function (e) {


$('#imageUploadForm').on('submit',(function(e) {
e.preventDefault();
var formData = new FormData(this);
var userID = <?php echo get_current_user_id(); ?>;
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
var data = {
'action': 'romme_call',
'whatever': 1234,
'userID': userID,
'function_call': 'upload_profile_photo',
**'form_data' : formData**
};
console.log(data);
jQuery.post(ajaxurl, data, function(response) {
console.log("done");
console.log(data);
});

这段代码当然会返回“Uncaught TypeError: Illegal invocation”

因为它不接受 formData 作为数据中的参数。

我该如何处理?

最佳答案

它返回 Illegal invocation 因为 jQuery 正在尝试用 $.param 解析表单数据。

提交文件时必须关闭jQuery的ajax处理

$('#imageUploadForm').on('submit', (function (e) {
e.preventDefault();
var formData = new FormData(this);
var userID = <? php echo get_current_user_id(); ?> ;
var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';

formData.append('action', 'romme_call');
formData.append('whatever', '1234');
formData.append('userID', userID);
formData.append('function_call', 'upload_profile_photo');

$.ajax({
url : ajaxurl,
type : 'POST',
data : formData,
contentType: false,
processData: false
}).done(function(response) {
console.log("done");
console.log(data);
});
});

关于javascript - Jquery 通过一次 ajax 调用同时发布文件和数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30798007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com