我试图通过api向我的控制器发送带有ajax(使用axios)的数据。
首先我的路由文件(/routes/api.php):
Route::post('/booking/request', 'BookingController@sendMail');
我想将数据发送到此路线,因此我的请求是:
var bookingUrl = baseUrl + 'api/booking/request';
axios.post(bookingUrl, {
name: "username",
amount: 2
});
之后,我只想记录这些数据以查看它是否到达我的控制器(app / Http / Controllers / BookingController):
class BookingController extends Controller
{
public function sendMail(Request $request)
{
Log::info('data: ' . $request->name);
}
}
这根本不起作用。我刚收到错误" 404 Not Found"。我也向Postman尝试过这个请求,但结果相同。由于我无法获得有关哪些内容无法正常工作的更多信息,因此无法解决问题。有人能让我走在正确的道路上吗?
编辑:所以实际问题是baseUrl。背后有一个错误的链接,所以它无法正常工作。
答案 0 :(得分:2)
axios.post只是一个帖子请求,而不是API特定请求 将路由声明放在routes / web.php文件中
//web.php
// now the url for post request will be /booking/request
Route::post('/booking/request', 'BookingController@sendMail');
和js
//JS
var bookingUrl = baseUrl + 'booking/request';
axios.post(bookingUrl, {
name: "username",
amount: 2
});
如果您仍需要 api 前缀,请在路由声明中添加api
Route::post('/api/booking/request', 'BookingController@sendMail');
// or
Route::group(['prefix'=>'api'], function(){
Route::post('/booking/request', 'BookingController@sendMail');
});