下午好,各位,我正在尝试实现一个通知系统,可以用类似的方式来标记这个通知。
我在后端使用laravel 7,前端使用vuejs。
代码在本地主机上正常工作,但是当我部署到Heroku时,它停止工作,并给我下面的消息。
http://springalert.herokuapp.com/api/like 405 (Method Not Allowed)
Uncaught (in promise) Error: Request failed with status code 405
at createError (app.js:5347)
at settle (app.js:5608)
at XMLHttpRequest.handleLoad (app.js:4816)
有人对这个问题有任何建议,我对此进行了研究,我知道我们必须配置CORS,但是对于这个版本的laravel,它应该不再需要了。
按照密码,谢谢你的帮助。
路由
Route::post('/api/like/', 'NotificationController@api_like');
控制器
public function api_like(Request $request) {
$like = new Like;
$like->notification_id = $request->id;
$like->user_id = auth()->id();
$like->save();
}
VUEJS
<b-card-text class="text-right" v-if="Object.keys(notification.like).length == 0">
<a @click="makelike('success', 'Informação', notification.id)" class="a"><i class="fas fa thumbs-up"></i></a>
</b-card-text>
makelike(variant = null, title, notification_id) {
this.id = notification_id
axios.post('api/like/',{ id:this.id })
.then((response) => {
this.set_notifications()
this.$bvToast.toast('Obrigado pela tua visualização', {
title: title,
variant: variant,
solid: true
})
})
},
发布于 2022-07-18 13:57:52
正如用户Mihai指出的,在向csrf发出get请求之后,您需要链接您的帖子请求。
这是拉拉维尔·桑克顿的样子:
import axios from 'axios'
const baseUrl = 'http://yourdomain.com'
const api = axios.create({
baseURL: baseUrl,
withCredentials: true
})
const payload = {}
api().get('/sanctum/csrf-cookie').then(() => {
return api().post('api/like', payload).then(resp => {
// Do stuff with resp
})
})
https://stackoverflow.com/questions/62410852
复制相似问题