【发布时间】:2021-11-21 17:50:24
【问题描述】:
我正在尝试让axios.post 以laravel 8 作为后端在vue 3 中工作,但我得到了POST http://localhost:3000/contact 500 (Internal Server Error)。
这是我的vue component(没有css):
<template>
<section class="contact">
<form @submit.prevent="storeContact">
<input type="text" placeholder="Name" v-model="name">
<input type="text" placeholder="Email" v-model="email">
<input type="text" placeholder="Message" v-model="message">
<button action="post" type="submit">Submit</button>
</form>
</section>
</template>
<script>
import {ref} from "vue";
export default {
setup() {
let success = false;
let error = false;
const name = ref(null);
const email = ref(null);
const message = ref(null);
function onSuccess(msg) {
success = true;
};
function onFailure(msg) {
error = true;
};
function storeContact() {
axios.post('post', {
name: 'name',
email: 'email',
message: 'message'
})
.then((res) => {
onSuccess(res.data.message)
})
.catch((error) => {
onFailure(error.response.data.message)
})
};
return {
success,
error,
name,
email,
message,
storeContact
}
}
}
</script>
另外,有没有办法像这样在axios.post 中使用array 而不是properties:
axios.post('post', [name, email, message]).then(...
【问题讨论】:
-
Internal Server Error表示服务器端错误。您的服务器可能需要特定格式的数据。你的 Laravel 日志显示了什么?
标签: javascript laravel vue.js axios vuejs3