我正在尝试编写我的第一个Vue组件并将其发布到我的Laravel后端。对于某些共振,帖子返回500错误。为什么是这样?是的,csrf令牌是发送的标头的一部分。
VUE COMPONENT:
<template>
<form v-on:submit.prevent="letsTalk">
<div class="input-group">
<input type="text" class="form-control" v-model="message" placeholder="Type here my friend..." ref="messageInput" autofocus>
<span class="input-group-btn">
<button class="btn btn-primary" type="submit">Send</button>
</span>
</div>
</form>
</template>
<script>
export default {
data: function () {
return {
message: 'joel',
messageInput: []
}
},
created(){
},
methods: {
letsTalk: function () {
this.$refs.messageInput.focus()
this.message = ''
this.success = function(m) {
console.log('success', m)
}
this.error = function(m) {
console.log('error', m)
}
this.$http.post( '/api/messages', [this.message])
.then(this.success, this.error);
}
}
}
</script>
途径:
Route::post('/api/messages', 'Messages@send');
CONTROLLER
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Log;
class Messages extends Controller
{
public function send() {
return json_encode('this works')
}
}
答案 0 :(得分:1)
您应该在浏览器developer console
的“电子邮件”标签下查看,以便查看发生的情况或查看日志。
如果这是您的复制和粘贴代码,那么您在json_encoded
行的末尾错过了一个分号,应该是:
return json_encode('this works');
如果您在撰写javascript
和javascript
之间翻转,尝试将分号括在php
中总是一个好主意,因为php
需要semi-colon
,如果你不习惯添加它们,很容易错过它们。