从 javascript $.post 获取 laravel 中的 $_post

get $_post in laravel from javascript $.post

我有一个 html 和一个类似的脚本(顺便说一句,出于某些原因,必须在我的 html 中使用老式的 post)...

@extends('layout')
// ... includes for jquery and ajax
<script>
var theVariableINeedInLaravel = "SomeInterestingStringI'mSure"; // in reality, this is a stringify.
$.post ("foo", function(theVariableINeedInLaravel) {
}
</script>
@stop

然后在routes.php...

<?php
Route::post('foo', 'ThatOneController@getValue');
?>

然后,在相关的控制器中.... ThatOneController.php

class ThatOneController extends \BaseController{
    public function getValue(){
    error_log(print_r($_POST,true)); // returns nothing.
    error_log(print_r(input::all()); // returns nothing.
}

}

或者,函数的替代版本...

public function getValue(Request $request){
error_log(print_r($request->all()); // returns nothing.

}

None 其中似乎有效。我怎样才能得到我的 post 变量?

事实证明,即使 $_post 并不总是可以从控制器函数内部访问,它 也可以直接从路由访问。这有点 hacky,"not the laravel way" 但你可以在路由中使用 $_post 来获取并传递给其他变量以恢复正常流程。

试试这个

use Request;
class ThatOneController extends \BaseController{

public function getValue(){
  print_r(Request::all());
}