簡體   English   中英

Laravel中的x可編輯錯誤419

[英]x-editable error 419 in laravel

我嘗試使用x-editable更改用戶表中列的值,並且在網絡上收到419錯誤。

代碼

這是我的CONTROLLER

public function changeprimaryaddress(Request $request){
      try {
          $id = $request->input('pk');
          $field = $request->input('name');
          $value = $request->input('value');

          $user = User::findOrFail($id);
          $user->{$field} = $value;
          $user->save();
      } catch (Exception $e) {
          return response($e->getMessage(), 400);
}

我的ROUTE

Route::post('/changeprimaryaddress','UserController@changeprimaryaddress')->name('changeprimaryaddress');

我的HTML代碼

<a href="#"
class="change"
data-type="select"
data-name="address_id"
data-pk="{{ $user->id }}"
data-value="{{ $user->address_id }}"
data-title="Select New Primary Address"
data-url="{{ route('changeprimaryaddress') }}">Change</a>

我的JAVASCRIPT

<script type="text/javascript">
$(function() {
    $('.change').editable({
        source: [
            @foreach($addresses as $address)
                { value: '{{ $address->id }}', text: '{{ $address->address }} - {{$address->city->name}}, {{$address->state->name}}, {{$address->country->name}}, {{$address->postalcode}}' }
                @unless ($loop->last)
                    ,
                @endunless
            @endforeach
        ]
    });
});
</script>

screenvideo

如果您想查看我提供的小視頻的過程和錯誤,則可以看到。

結果

知道為什么嗎?

感謝@SagarGautam。 我加了

$.ajaxSetup({
  headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }
});

它現在正在工作。

這是因為您沒有將csrf令牌發送到控制器。 發送令牌,或執行以下操作將其排除。

打開您的app/Http/Middleware/VerifyCsrfToken.php文件,然后輸入以下代碼:

class VerifyCsrfToken extends Middleware
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        'changeprimaryaddress',
    ];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM