在 Laravel 中使用 POST 方法使用 ajax 发送字符串


send string with ajax with post method in laravel

这是jquery代码:

field1="11111",field2="2222",field3="3333"
    $.ajax({
       url:"getdata" ,
       data:{'field1' : field1 , 'field2':field2 , 'field3':field3 },
       processData: false,
       type:'post'
    });

这是拉拉维尔的路线:

Route::post('getdata',function(){
   $datadata=Input::post('field1');
   return $datadata ;
});

当我使用正常工作的 get 方法时,但是当我想使用 post 方法时,Laravel 中会发生此错误:

Call to undefined method Illuminate'Http'Request::post()
你对

GET POST 数据都使用 Input::get()

Route::post('getdata',function(){
    $datadata = Input::get('field1');
    return $datadata ;
});

get()方法名称不是指 HTTP 谓词,而只是表示它是一个 getter 方法。

来自 Laravel 文档:

您无需担心用于请求的 HTTP 动词 (=method),因为 所有谓词的输入都以相同的方式访问。

意思是没有像Input::post()这样的东西。
您可以将Input::get()用于任何方法。这将起作用:

Input::get('field1');

发布javascript arrys或对象时使用JSON.stringify

将 Ajax 更改为,

 $.ajax({
   url:"getdata" ,
   data: JSON.stringify({ field1 : field1 , field2:field2 , field3:field3 }),
   processData: false,
   type:'post'
});

在控制器中,

Route::post('getdata',function(){
   $datadata=Input::json('field1');
   return $datadata ;
});