NuxtJS axios发布到座舱CMS

时间:2018-11-19 16:18:33

标签: vue.js fetch axios nuxt.js cockpit

我目前正在使用cockpit作为我的无头CMS构建一个nuxtjs项目。目前,我在使用axios提交帖子数据时发现一个问题。使用以下提取时,它可以按预期工作:

fetch('/api/forms/submit/Inschrijven?token=xxxtokenxxx', {
    method: 'post',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
       form: {
            author: 'John Doe',
            content: 'Something',
            published: true
        }
    })
});

但是遗憾的是,IE(该项目所需的浏览器)不支持提取。因此,我们使用axios来处理请求,但在与上述相同的URL上使用axios.post总是返回“找不到路径”。

axios.post('/api/forms/submit/Inschrijven?token=xxtokenxx', {
    author: 'John Doe',
    content: 'Something',
    published: true
})
.then(entry => entry.json())
.then(entry => console.log(entry));

我怀疑API中存在错误,无法将其识别为真正的json帖子。这里有人知道为什么axios.post不起作用吗?

1 个答案:

答案 0 :(得分:0)

我以前使用过座舱cms和nuxtjs,我可以说有些事情与您提出请求的方式不同。

  1. 您未通过标题
  2. 使用JSON.stringify

    axios.post( 'https://something.com/api/forms/submit/contact?token=XXX', JSON.stringify({ form: { name: this.name, model: this.carModel, service: this.service, number: this.models.phoneNumber } }), { headers: { 'Content-Type': 'application/json' } } ) the docs

    上的示例相似

    fetch('/api/forms/submit/cockpitForm?token=xxtokenxx', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ form: { field1: 'value1', field2: 'value2' } }) }) .then(entry => entry.json()) .then(entry => console.log(entry));