2017-07-26 190 views
0

我试图JSON发送到laravel功能使用Ajax这样的:Laravel 5.4 500内部服务器上Ajax和CSRF场错误

$.ajax({ 
     url: "{{ route('store-formbuilder') }}", 
     type: 'POST', 
     data: { payload: payload, _token: "{{csrf_token()}}" } 
    }) 
    .done(function() { 
     console.log("success"); 
    }) 
    .fail(function() { 
     console.log("error"); 
    }) 
    .always(function() { 
     console.log("complete"); 
    }); 

有效载荷看起来是这样的:

{"fields":[{"label":"Text","field_type":"text","required":true,"field_options":{"size":"small"},"cid":"c2"}]} 

我的路线/web.php:

Route::post('/admin/formbuilder', '[email protected]')->name('store-formbuilder'); 

和我的存储功能的控制器:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Form; 

class FormBuilderController extends Controller 
{ 
    public function store(Request $request) 
    { 
     if ($request->ajax()) { 
      $fields = $request->fields; 

      //foreach ($fields as $field) { 
       $form = new Form; 

       $form->name('test'); 
       $form->json($fields); 

       $form->save(); 

       return response()->json(['success' => 'stana']); 
      //} 
     } 

     return redirect()->route('formbuilder'); 
    } 
} 

当我尝试发送ajax请求时,它控制台记录错误,它说500内部服务器错误 我有csrf令牌,如您所见。我不知道问题可能是什么。 注:我使用Laravel 5.4,如果这可能帮助

+0

一500内部错误意味着代码本身有问题(通常是语法);检查存储/日志中的日志。 –

+0

您在检查过程中看到过网络中500错误的预览吗? –

+0

你可以粘贴'Form'模型吗? –

回答

0

我已经想通了 下面是我做修复它

我被错误地保存模型的属性的东西。这不是$form->name('test')它是$form->name = 'test'和json相同。

,我需要使用的字段json_encode接下来的事情,所以$form->json = $fields变得$form->json = json_encode($fields),我改变了我发送到田地Ajax请求领域有效载荷的名字,所以我$request->fields可以访问它

相关问题