Javascript Vuejs获取组件HTML并通过ajax POST发送

Javascript Vuejs获取组件HTML并通过ajax POST发送,javascript,vue.js,Javascript,Vue.js,我想用HTML正文发送电子邮件,但我没有访问服务器代码的权限,我只能通过ajax发送电子邮件内容。 服务器已具有用于发送电子邮件的API 我让组件invoiceEmail动态呈现 sendEmail () { const mailConfig = { to : 'johndoe@example.com', subject : 'Your Invoice', // body : this.$refs.invoiceEmail.

我想用HTML正文发送电子邮件,但我没有访问服务器代码的权限,我只能通过ajax发送电子邮件内容。 服务器已具有用于发送电子邮件的API

我让组件
invoiceEmail
动态呈现

sendEmail () {
    const mailConfig = {
        to      : 'johndoe@example.com',
        subject : 'Your Invoice',
        // body    : this.$refs.invoiceEmail.$el, // this doesn't work
        // I'm getting error "converting circular structure to json"
        body    : '<strong style="color:red;">red bold</strong>', // this works
    }
    this.$api.POST('send-email', mailConfig)
        .then(response => {})
        .catch(error => {})
        .finally(() => {})
    },
}
sendmail(){
常量mailConfig={
致:'johndoe@example.com',
主题:“您的发票”,
//body:this.$refs.invoiceEmail.$el,//这不起作用
//“将循环结构转换为json”时出错
正文:“red-bold,//这很有效
}
此.api.POST('send-email',mailConfig)
。然后(响应=>{})
.catch(错误=>{})
.最后(()=>{})
},
}
如果我用HTML作为字符串填充
正文
这应该是粗体的
,它可以正常工作。因此,如果我能得到HTML,我相信代码会起作用

这是
console.log(This.$refs.invoiceEmail.$el)

我应该使用什么来获取普通HTML而不是
此。$refs.invoiceEmail。$el

编辑:

试着像这样解析它。$refs.invoiceEmail。$el.toString()。这行不通


@Flame是正确的,
.innerHTML
将起作用。

您可以这样做。$refs.yourRef.$el.innerHTML将内部HTML作为字符串返回给您

也只是对这个答案进行一点扩展:
this.$refs.yourRef.$el
返回一个原始DOM对象,就像使用原始Javascript执行
document.getElementById('myelement')
一样


错误消失了,但我在电子邮件中只收到[object HtmlDevice]