laravel 带参数的简单 axios

laravel simple axios with argument

我正在尝试设置 axios 请求,但总是缺少参数,但不确定我该如何传递它,有人可以解释为什么这行不通吗?

我的路线:(web.php)

Route::post('/api/setSuccessMessage', 'API\SessionsController@setSuccessMessage');

我的控制器:(Controllers/API/SessionsController.php)

class SessionsController extends Controller
{
    public static function setSuccessMessage($key, $value)
    {
        session()->put($key ,$value);
    }...

和我的 vueJS axios 调用 (resources/assets/components/Login.vue)

created: function () {
            // check is user logged out
            axios.post('/api/setSuccessMessages', {message: 'message',message2: 'message2'}).then((response)=> {
                console.log(response);
            })
        },

如果您想将数据作为请求正文的一部分发送,您可以这样做

axios.post('/api/setSuccessMessages', {message: 'message',message2: 'message2'})
     .then((response)=> {
           console.log(response);
      }
)
//you then accept them as such
Route::post('/api/setSuccessMessage/{message}/{message2}', 'API\SessionsController@setSuccessMessage');

如果您希望将数据作为请求参数发送(url 中 ? 之后的所有内容),您可以这样做

 var params = {
    message1: message1,
    message2: message2
 };
 axios.post('/api/setSuccessMessages', {}, {'params': params})
     .then((response)=> {
           console.log(response);
      }
)
//you then accept them as such
Route::post('/api/setSuccessMessage', 'API\SessionsController@setSuccessMessage');
//You can further use them as such in controller
function public test(Request $request) {
   $request->get('message1');
   $request->get('message2');
}

我将参考 axios official docs 作为 axios 请求参数

使用:

 public static function setSuccessMessage(Request $request)
 {
     $key = $request->get('message');
     $value = $request->get('message2');

     session()->put($key ,$value);
 }