在Ember中发送文件作为POST请求,需要使用FormData对象来构建请求体,并使用fetch或ajax方法发送请求。
以下是一个示例代码,演示如何在Ember中发送文件作为POST请求:
import { inject as service } from '@ember/service';
import Controller from '@ember/controller';
export default Controller.extend({
ajax: service(),
actions: {
async uploadFile(file) {
let formData = new FormData();
formData.append('file', file);
try {
await this.ajax.request('/upload', {
method: 'POST',
data: formData,
processData: false,
contentType: false
});
console.log('File uploaded successfully!');
} catch (error) {
console.error('Error uploading file:', error);
}
}
}
});
在上述代码中,我们首先创建了一个FormData对象,并将文件添加到formData中。然后,使用ajax服务的request方法发送POST请求到指定的上传接口(这里假设接口为/upload
)。在请求配置中,我们将processData
和contentType
设置为false
,以确保不对formData进行额外处理。
请注意,上述代码中使用了Ember的ajax服务来发送请求。如果你更喜欢使用fetch API,可以将this.ajax.request
替换为fetch
方法。
这是一个简单的示例,你可以根据实际需求进行修改和扩展。希望对你有帮助!
领取专属 10元无门槛券
手把手带您无忧上云