2017-07-26 247 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可以訪問它

相關問題