我正在使用PhoneGap(Vue,Framework7)和WordPress后端开发应用程序。
我正在尝试通过媒体REST API端点(使用axios)将捕获的图像上传到WordPress后端,但返回错误。
该图像在应用中正确显示(使用DATA_URL-base64编码),但是当我尝试将其上传到端点时,会引发错误。
const apiHost = 'https://example.com/wp-json'
let image_form_data = new FormData
// self.images[0] is the first base64 encoded image stored in a Vuex store
// self.jwToken is the JavaScript Web Token string
image_form_data.append( 'file', self.images[0] )
const imagesOptions = {
method: 'post',
url: apiHost + '/wp/v2/media',
headers: {
"Accept": "application/json",
"Content-Type": "multipart/form-data",
"Authorization": 'Bearer ' + self.jwToken,
"Content-Disposition": "attachment; filename=\"uploaded_image.png\"",
"Cache-Control": "no-cache"
},
data: image_form_data
}
axios( imagesOptions )
.then( (imgResp) => {
console.log('imgResp')
console.log(imgResp)
} )
它抛出一个错误:
URL: https://example.com/wp-json/wp/v2/media
State: 500 Internal Server Error
Source: Network
服务器设置为接受16M文件上传,因此应该没有问题(但是谁知道呢?)。
但是我已经出现了类似“出于安全原因不允许使用资源”的错误(在wp-config.php中被define('ALLOW_UNFILTERED_UPLOADS', true);
所绕过了。)
我可以使用自定义API终结点并使用filereader / blob来解决该问题,但是现在使用“官方”终结点对我来说很重要。
有人知道如何解决吗? (我已经阅读了很多有关SO(及其他)的文章,但没有任何效果。)