我想使用laravel和vuejs发送电子邮件。我写了如下的laravel控制器函数
Mail::send(['text' => 'mail'],['name', 'David'], function($message){
$message->to('test123@gmail.com')->subject('Test Email');
$message->from('testmail@gmail.com', 'David');
});
return response()->json(['success'=>true]);
我为@click方法编写了一个vuejs发送电子邮件功能
this.axios.get('https://techwizlanka/send', {
body: JSON.stringify(this.user),
headers: {
'content-type': 'application/json',
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
})
.then(res => res.json())
.then(data => {
console.log("email sent");
})
.catch(err => console.error(err.toString()));
我这样称呼该URL
Route::get('/send', 'MailController@sendMail');
但是当单击发送按钮时,它会显示此错误消息。
app.js:44786未捕获的TypeError:无法读取未定义的属性“ get” 在VueComponent.sendMail(app.js:44786) 在调用者处(app.js:34769) 在HTMLButtonElement.fn._withTask.fn._withTask(app.js:34568)
有人可以帮助我解决此问题吗?基本上,我想在使用laravel和vuejs提交表单时发送电子邮件。
答案 0 :(得分:2)
肯定是因为您没有正确呼叫axios
。请确保this
上的this.axios
指的是什么。
假设您使用npm install axios
安装了 axios 。然后尝试按以下方式或多或少地导入和使用 axios :
import axios from 'axios';
export default {
data() {
return {
user: [],
};
},
methods: {
click() {
axios
.get('https://techwizlanka/send', {
body: JSON.stringify(this.user),
headers: {
'content-type': 'application/json',
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
})
.then(res => res.json())
.then(data => {
console.log("email sent");
})
.catch(err => console.error(err.toString()));
},
},
...
}
答案 1 :(得分:0)
尝试使用此方法
axios.post(url, data)
.then(response => {
})
并在您的route / web.php中发布您的路线
在使用get方法函数时不期望请求,但是在您遇到的情况下,您可以传递请求。