WordPress-ERR_BAD_RESPONSE管理员ajax php文件上传



我正在尝试使用admin-ajax.php在WordPress中上传文件

我的functions.php文件中有此代码

function upload_docs(){
var_dump($_FILES);
}
add_action('wp_ajax_nopriv_upload_docs', 'upload_docs');
add_action('wp_ajax_upload_docs', 'upload_docs');

目前的功能是一个测试,我想用它来调试从前端传递的信息,前端是一个托管在页面模板中的Vue应用程序。

我已经正确地加载并本地化了Vue CSS和js文件,在构建之后,在我的localhost中,我可以传递我在函数文件上配置的其他表单

在前端,Vue应用程序有这种方法,可以将所需信息添加到WordPress后端

sendUploadForm(){
let documents = this.$refs.uploadedFiles.files
let userData = new FormData()
for(let i = 0; i < documents.length; i++ ){
userData.append('file[]', documents[i])
}
userData.append('action', 'upload_docs')
axios.post(wp_param.ajaxurl, userData).then( res => {
console.log(res)
}).catch( e => console.log(e) )

}

代码出了什么问题?我总是会得到一个500错误状态代码ERR_BAD_RESPONSE,我不知道是否调用了该函数,因为我无法从PHP中看到任何var_dumpvar_export。我尝试在wp配置文件中启用调试,但没有任何更改。

有什么建议吗?

WP_DEBUG下添加这两行,使错误再次发生,如果看到新文件debug.log,请签入文件夹wp-content/

define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false); 

考虑:

  • 实现nonce和权限检查以保护端点
  • 如果只有登录用户才能上传文件,请确保no_priv方法被正确锁定
  • 使用自定义REST API端点而不是admin-ajaxhttps://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/
  • 使用wp_die((终止您的函数;在WordPress中使用AJAX时

由于WordPress插件冲突,我遇到了这个问题。

您可以禁用未使用的插件并进行检查。