Ajax调用在Laravel 5的控制台中返回500错误

时间:2015-10-12 07:59:49

标签: php jquery ajax laravel-5

我在laravel5网站上有一个表单,表单看起来像这样

eval

Jquery就像这样

<form id="vcard" action="/targetmodule/variancecard" method="post" enctype="multipart/form-data">
    <input type="hidden" name="_token" value="iDPCv9dJIANYxZgwDOLmPzHg7tozMWpe1Yp7SR5R">
    <table>
        <tbody>
            <tr>
                <td>Event Name:</td>
                <td>
                    <select class="form-control" name="event">
                        <option value="Design Mission India-(South&amp; West)">Design Mission India-(South&amp; West)</option>
                        <option value="Design Mission India-(North &amp; East)">Design Mission India-(North &amp; East)</option>
                        <option value="Design Mission India-(North &amp; East)">Design Mission India-(North &amp; East)</option>
                    </select>
                </td>
                <td>
                    <input type="hidden" name="empid" value="IDE133">
                    <button type="submit" class="getvariance btn btn-primary " name="submit">Submit</button>
                </td>
            </tr>
        </tbody>
    </table>
</form>

路线如下

<script type="text/javascript">
$(document).ready(function(){

  $('.getvariance').on('click',function(event){  

    event.preventDefault();

    data_array = $("#vcard").serialize();


  $.ajax({
        url: '/targetmodule/variancecard',
        type: "post",
        data: data_array,
        processData: false,
        contentType: false,
        success: function(data){
            alert(data);
        }
      }); 
  });
});
</script>

TargetController看起来像这样

Route::post('targetmodule/variancecard','TargetController@variancecard');

错误日志

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Input;
use App\User;
use App\Deal;
use App\Employee;
use App\Targetassign;
use Session;
use Validator;
class TargetController extends Controller
{
public function variancecard( Request $request ){


    //Getting all post data
    if($request->ajax()) {

   $data = Input::all();

  print_r($data);die;
    }

}
}

我提交表单时收到500错误

控制台中的错误

#0 [internal function]: Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#1 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#2 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\View\Middleware\ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#3 [internal function]: Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#4 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#5 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php(62): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#6 [internal function]: Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#7 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#8 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#9 [internal function]: Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#10 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#11 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\EncryptCookies.php(59): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#12 [internal function]: Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#13 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#14 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php(42): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#15 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#16 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(124): call_user_func_array(Array, Array)
#17 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#18 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#19 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(122): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#20 E:\ide-invoice\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(87): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#21 E:\ide-invoice\public\index.php(54): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))

任何帮助都会非常有用。

谢谢

1 个答案:

答案 0 :(得分:0)

&lt; p&gt;修复:输入:: all(),它位于&lt; code&gt;全局命名空间&lt; / code&gt;中但您的控制器位于&lt; code&gt; App \ Http \ Controllers&lt; / code&gt;命名空间。只需添加&lt; code&gt;即可使用输入;&lt; / code&gt;在控制器的顶部,其余的使用语句。 &LT; / p为H. &lt; p&gt;更好的解决方案:您是在方差卡方法中注入Request对象的方法,但是您没有使用它?替换&lt; code&gt; $ data = Input :: all();&lt; / code&gt;使用&lt; code&gt; $ data = $ request-&gt; all();&lt; / code&gt;&lt; / p&gt; &LT; p为H.要么:其中/ p为H. &lt; pre&gt;&lt; code&gt;命名空间App \ Http \ Controllers; 使用Illuminate \ Http \ Request; 使用Illuminate \ Support \ Facades \ Auth; 使用App \ Http \ Requests; 使用App \ Http \ Controllers \ Controller; 使用Illuminate \ Support \ Facades \ Input; 使用App \ User; 使用App \ Deal; 使用App \ Employee; 使用App \ Targetassign; 使用Session; 使用Validator; 使用输入; class TargetController扩展了Controller { public function variancecard(Request $ request){     //获取所有发布数据     if($ request-&gt; ajax()){    $ data = Input :: all();   的print_r($数据);模具;     } } } &LT; /代码&GT;&LT; /预&GT; &LT; p&gt;或:其中/ p为H. &lt; pre&gt;&lt; code&gt;命名空间App \ Http \ Controllers; 使用Illuminate \ Http \ Request; 使用Illuminate \ Support \ Facades \ Auth; 使用App \ Http \ Requests; 使用App \ Http \ Controllers \ Controller; 使用Illuminate \ Support \ Facades \ Input; 使用App \ User; 使用App \ Deal; 使用App \ Employee; 使用App \ Targetassign; 使用Session; 使用Validator; class TargetController扩展了Controller { public function variancecard(Request $ request){     //获取所有发布数据     if($ request-&gt; ajax()){    $ data = $ request-&gt; all();   的print_r($数据);模具;     } } } &LT; /代码&GT;&LT; /预&GT;