未记录时,异步上载不起作用

时间:2021-08-17 作者:Rom

我使用此代码从前端上载文件。

formData = new FormData;
formData.append(\'action\', \'upload-attachment\');
fileInputElement = document.getElementById(\'file\');
formData.append(\'async-upload\', fileInputElement.files[0]);
formData.append(\'name\', fileInputElement.files[0].name);
formData.append(\'type\', fileInputElement.files[0].type);
my_nonce = document.getElementById(\'my_nonce\').value;
formData.append(\'_wpnonce\', my_nonce);

axios.post(\'/wp-admin/async-upload.php\', formData, {
    headers: {
    \'Content-Type\': \'multipart/form-data\'
    }
}).then(function(response) {
    infos_contact.file_uploaded = response.data.data.filename;
    infos_contact.file_uploaded_url = response.data.data.url;
})["catch"](function(error) {
    console.log(error);
});
登录时工作正常,但不在未登录时。因为它是用于前端的,如果它在未登录时不工作,那么它就没有用了。我想如果你出于安全原因没有登录,WordPress会保护上传功能。

我可以用钩子绕过这个保护吗?

谢谢

1 个回复
SO网友:Rom

我不得不更改/wp-admin/async-upload。php到/wp-admin/admin-ajax。php使挂钩工作。