【发布时间】:2018-12-18 18:52:10
【问题描述】:
知道有一些关于这个主题的问题,我今晚大部分时间都在搜索它们,试图找到解决我问题的方法。这是我第一次从事这样的工作。
我正在尝试通过 WordPress 中的 AJAX 上传文件。我已经在 WordPress 中设置了 AJAX,并且连接工作正常,直到我尝试传递表单数据,在该阶段我收到“错误请求”错误并且除此之外没有其他信息。
WordPress中的AJAX回调函数很简单:
add_action( 'wp_ajax_nopriv_calendar_process', 'calendar_process' );
add_action( 'wp_ajax_calendar_process', 'calendar_process' );
function calendar_process() {
echo "worked";
die();
}
我的前端表单如下所示:
<form method="post" class="custom-cal-form">
<input type="file" accept=".ics" name="custom-calendar" id="custom_cal_file" />
<button class="submit-ajax">Update Calendars</button>
</form>
我的 AJAX 调用如下所示:
jQuery( document ).on( 'click', '.submit-ajax', function(e) {
e.preventDefault();
var file_data = jQuery('#custom_cal_file').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
console.log(form_data);
jQuery.ajax({
url : calendarprocess.ajax_url,
type : 'post',
processData: false,
contentType: false,
data : {
action : 'calendar_process',
post_id : 'test',
calendar : form_data
},
success : function( response ) {
jQuery('.ajax-response').html( response );
}
});
});
我最初得到了错误
只能在 FormData 的实例上调用 FormData.append
直到我查看了一些问题并添加了
过程数据:假, 内容类型:假,
到我的表单,现在我得到的完整错误是:
加载资源失败:服务器响应状态为 400 (错误请求)
这当然表明 WordPress 不高兴。
真的希望有人可以对此添加一些见解吗?提前致谢。
【问题讨论】: