Laravel通过api路由发布数据会导致找不到404

时间:2017-11-14 16:30:14

标签: php laravel laravel-5.5

我试图通过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。背后有一个错误的链接,所以它无法正常工作。

1 个答案:

答案 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');
});